findstr で日本語文字を検索

★ DOS窓で使える findstr コマンドはファイル群を一気に文字検索するのに便利ですね~

例えば  testdesu  という文字が使用されているPHPファイルを調べたいときは

> findstr/s testdesu  *.php
 /s  はサブフォルダ―配下のファイルも全部検索してくれます
結果をファイルに出力するときは
> findstr/s testdesu  *.php > output.txt
★ ところで、最近はソースコードもUNICODEを使用しているので
日本語の文字で検索したい場合はどうするんだろう・・・?
例えば '単価' とう文字を探したいときにDOS窓に
>findstr/s 単価 *.php  
と打ってもダメですよね~
★ こんなときは、検索文字を検索対象ファイル群と同じ文字コード(utf-8 BOMなし)で
検索用のファイルに編集しておいて、検索すると探せます。 こんな感じで
>findstr/sg:search.txt  *.php
  /g: は 検索文字のファイルを指定。 search.txt に 単価 を書いておけばいい
★ 複数の文字を一度に検索するとはどうするんだろう・・・?
search.txt に検索したい文字を1行ずつ並べればいいはずですが・・・・
たとえば、単価 と 合計金額 を検索したい場合は
単価
合計金額
やってみると、何故か 単価 しか検索しれくれません
順番を変えても同じ・・・
合計金額だけにすると、なぜか検索してくれます
★  それで、 DOS窓の表示を UNICODEに変えて検索ファイルの中身をタイプしてみました
>chcp 65001
>type search.txt
単価
合計金額・
なんか、変な 点 ・ が付いて表示される・・・?
検索ファイル内で、合計金額を 合計金 に変えてから検索してみると
>findstr/sg:search.txt  *.php
今度は、単価 も 合計金 の文字も両方一度に検索できました
いろいろやってみましたが、なんか変だな~
★ 話が長くなるので、今回はこの辺で止めにしますが
UNICODEで検索する場合は、検索ファイルの文字は一つ(1行)にしておいたほうが
無難ということでしょうかね・・・・
それでもまだ何か落とし穴が潜んでいるかもね・・・




おすすめ