findコマンドを使用するとファイルやパイプを使って標準出力に出力された文字群から指定した文字列を検索することができます。
尚、より詳細な文字列検索をしたい場合は、以下の記事のfindstrを使用するとよいかもしれません。
以下にfindコマンドを使用した例をいくつか紹介します。
dirの出力をパイプでfindコマンドに渡し、<DIR>文字列を含む行のみ表示しています。
実行例
c:\Windows>dir | find "<DIR>" 2012/10/10 14:51 <DIR> . 2012/10/10 14:51 <DIR> .. 2009/07/14 14:32 <DIR> addins 2009/07/14 12:20 <DIR> AppCompat 2012/10/11 14:25 <DIR> AppPatch 2009/07/14 14:32 <DIR> Boot 2009/07/14 14:32 <DIR> Branding 2012/01/11 16:07 <DIR> CSC 2009/07/14 14:32 <DIR> Cursors 2012/01/12 12:10 <DIR> debug 2009/07/14 14:32 <DIR> diagnostics 2009/07/14 19:49 <DIR> DigitalLocker <snip>
dirの出力をパイプでfindコマンドに渡し、<DIR>文字列を含まない行のみ表示しています。
指定した文字列を含まない行を表示するには、/Vオプションを使用します。
実行例
c:\Windows>dir | find /v "<DIR>" ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は 1234-1234 です c:\Windows のディレクトリ 2010/11/20 22:24 71,168 bfsvc.exe 2012/10/19 14:22 16,311 cfgall.ini 2012/01/11 16:09 1,774 DtcInstall.log 2011/02/25 15:19 2,871,808 explorer.exe 2009/07/14 10:39 15,360 fveupdate.exe 2009/07/14 10:39 733,696 HelpPane.exe 2009/07/14 10:39 16,896 hh.exe 2012/01/12 13:03 4,594 IE9_main.log <snip>
dirの出力をパイプでfindコマンドに渡し、<DIR>文字列を含む行数を表示しています。
構文は以下のようになり、/Cオプションにより指定した文字列を含む行数を返却するようになります。
find /C 検索文字列 対象ファイル
以下の実行例は、dirの出力をパイプでfindコマンドに渡しています。
実行例
c:\Windows>dir | find "<DIR>" /c 55
以下に記すファイルを使用し行番号表示をしてみます。
c:\Users\sakura\Desktop>type os.txt Linux FreeBSD NetBSD OpenBSD Solaris SunOS AIX IRIX HP-UX Windows Vista Windows 7 Windows 8 Mac OS Mac OS X NEXTSTEP
キーワードWindowsで検索し、行番号を表示してみます。
実行例
c:\Users\sakura\Desktop>find /N "Windows" os.txt ---------- OS.TXT [10]Windows Vista [11]Windows 7 [12]Windows 8
上記の「指定した文字列が含まれる行番号を表示する」で使用したos.txtを使用して例を記します。
実行例
wが小文字のため指定したキーワードの行が見つからない時の実行結果です。
c:\Users\sakura\Desktop>find /N "windows" os.txt ---------- OS.TXT
オプション/Iにより、大文字・小文字を区別しなくなります。
実行例
c:\Users\sakura\Desktop>find /I "wInDoWs" os.txt ---------- OS.TXT Windows Vista Windows 7 Windows 8
findコマンドの使いかたを確認するには、/?オプションを使用します。
c:\Windows>find /?
ファイル (複数可) 内のテキスト文字列を検索します。
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "文字列" [[ドライブ:][パス]ファイル名[...]]
/V 指定した文字列を含まない行をすべて表示します。
/C 指定した文字列を含む行の数だけを表示します。
/N 行番号を表示します。
/I 大文字と小文字の区別をしないで検索します。
/OFF[LINE] オフライン属性が設定されたファイルをスキップしません。
"文字列" 検索する文字列を指定します。
[ドライブ:][パス]ファイル名
検索するファイル (複数可) を指定します。
パスが指定されていないときは、プロンプトで入力されたテキストまた
は別のコマンドからパイプ処理で渡されたテキストを検索します。