#navi(../)
* 指定した文字列を検索する・findコマンド [#sa4ca55b]
findコマンドを使用するとファイルやパイプを使って標準出力に出力された文字群から指定した文字列を検索することができます。~
尚、より詳細な文字列検索をしたい場合は、以下の記事のfindstrを使用するとよいかもしれません。

#contents
#htmlinsertpcsp(win-top.html,win-sp.html)

* 関連記事 [#g08e04be]
-[[正規表現で文字列検索をする・findstr>コマンドプロンプト/正規表現で文字列検索をする・findstr]]

* findコマンドを使ってみる [#xba5444e]
以下にfindコマンドを使用した例をいくつか紹介します。

** dirの出力からディレクトリのみ表示する [#q2235cb2]
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の出力からディレクトリのみ表示する [#w91b80a4]
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>

** 指定した文字列を含む行数を取得する [#u3cc15db]
dirの出力をパイプでfindコマンドに渡し、<DIR>文字列を含む行数を表示しています。~
構文は以下のようになり、/Cオプションにより指定した文字列を含む行数を返却するようになります。
 find /C 検索文字列 対象ファイル
以下の実行例は、dirの出力をパイプでfindコマンドに渡しています。

実行例
 c:\Windows>dir | find "<DIR>" /c
 55

** 指定した文字列が含まれる行番号を表示する [#x18f2a0c]
以下に記すファイルを使用し行番号表示をしてみます。
 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

** 大文字・小文字を区別せず検索する [#h58b3e0f]
上記の「指定した文字列が含まれる行番号を表示する」で使用した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コマンドのヘルプ [#q837fba3]
findコマンドの使いかたを確認するには、/?オプションを使用します。
 c:\Windows>find /?
 ファイル (複数可) 内のテキスト文字列を検索します。
 
 FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "文字列" [[ドライブ:][パス]ファイル名[...]]
 
   /V        指定した文字列を含まない行をすべて表示します。
   /C        指定した文字列を含む行の数だけを表示します。
   /N        行番号を表示します。
   /I        大文字と小文字の区別をしないで検索します。
   /OFF[LINE] オフライン属性が設定されたファイルをスキップしません。
   "文字列"  検索する文字列を指定します。
   [ドライブ:][パス]ファイル名
             検索するファイル (複数可) を指定します。
 
 パスが指定されていないときは、プロンプトで入力されたテキストまた
 は別のコマンドからパイプ処理で渡されたテキストを検索します。

#htmlinsertpcsp(win-btm.html,win-sp.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS