このエントリーをはてなブックマークに追加


指定した文字列を検索する・findコマンド

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


関連記事

findコマンドを使ってみる

以下にfindコマンドを使用した例をいくつか紹介します。

dirの出力からディレクトリのみ表示する

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の出力からディレクトリのみ表示する

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コマンドのヘルプ

findコマンドの使いかたを確認するには、/?オプションを使用します。

c:\Windows>find /?
ファイル (複数可) 内のテキスト文字列を検索します。

FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "文字列" [[ドライブ:][パス]ファイル名[...]]

  /V        指定した文字列を含まない行をすべて表示します。
  /C        指定した文字列を含む行の数だけを表示します。
  /N        行番号を表示します。
  /I        大文字と小文字の区別をしないで検索します。
  /OFF[LINE] オフライン属性が設定されたファイルをスキップしません。
  "文字列"  検索する文字列を指定します。
  [ドライブ:][パス]ファイル名
            検索するファイル (複数可) を指定します。

パスが指定されていないときは、プロンプトで入力されたテキストまた
は別のコマンドからパイプ処理で渡されたテキストを検索します。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:49:23