ホーム > コマンドプロンプト・バッチファイル リファレンス
Linuxで良く使用されるGrepですが、Windowsにも無いのかなと調べたところ普通にありましたので記載しておきます。
テストデータ
今回は、フォルダ内に下記のファイルを用意したので、これをGrepで検索したいと思います。
C:\workspace\grep>dir /a-d /b 20210101.log 20210102.log 20210103.log サンプルファイル_001.txt サンプルファイル_002.txt テスト.logファイル.txt 新しいテキスト ドキュメント.txt
ファイルに含まれる文字列で検索
ここでは、ファイルに含まれる文字列「サンプル」で検索してみます。
下のようにファイル名に「サンプル」が含まれるファイルのみ表示されました。
C:\workspace\grep>dir /a-d /b | findstr サンプル サンプルファイル_001.txt サンプルファイル_002.txt
ワイルドカードで拡張子が[.log]のファイルを検索
ワイルドカードを使用して、「*.log」となるファイルを検索します。
単純に「.log」で検索すると、以下のように拡張子以外に「.log」を含むファイルが表示されます。
また、Linuxのように単純に「*.log」とした場合は、ファイルが表示されません。
C:\workspace\grep>dir /a-d /b | findstr .log 20210101.log 20210102.log 20210103.log テスト.logファイル.txt ---拡張子以外の[.log]も拾われてしまう。 C:\workspace\grep>dir /a-d /b | findstr *.log 結果が0件
なので、以下のように記述します。
拡張子が「log」となっているファイルのみ抽出できました。
C:\workspace\grep>dir /a-d /b ^| findstr /r *log 20210101.log 20210102.log 20210103.log
記事は以上です。findstrコマンドですが、オプションも多数あり、様々な使い方が出来そうなので良さげな組み合わせを見つけ次第追記していきたいと思います。
コメント