grep
◆grep コマンドオプション
- -H Add 'filename:' prefix(一致したファイル名も出力する)
- -n Add 'line_no:' prefix(一致した行番号も出力する)
- -l Show only names of files that match(一致したらファイル名だけを出力する)
- -r Recurse(再帰処理)
- -i Ignore case(大文字/小文字を無視する)
- オプション無し
- 一致した文字列を含むファイル名だけを出力する
-----
sample.txt
-----
「-l」...ファイル名だけを出力する(「-H」や「-n」は無効になる)
- 一致した文字列を含むファイル名と行番号も出力する
-----
sample.txt : 3 : 123
-----
「-H」...ファイル名出力
「-n」...行番号出力
-----
sample.txt : 3 : 123
-----
「-H」...ファイル名出力
「-n」...行番号出力
「-r」...再帰検索
「*」...ファイル名を「*」にしないと正しく動作しない
- 文字列を or条件 で指定する(※検索文字列を「\|」でつなぐか「-e」を使う)
DOS> grep -Hn "^a\|^A" sample.txt(先頭が「a」か「A」で始まるもの)
又は
DOS> grep -Hn -e "^a" -e "^A" sample.txt
-----
sample.txt : 1 : abc
sample.txt : 2 : ABC
-----
- 文字列を and条件で指定する(※grepをパイプ「|」でつなぐ)
DOS> grep -Hn "^a\|A" sample.txt | grep "abc"
-----
sample.txt : 1 : abc
-----
内部grep(vimgrep)は、vimさえ使えれば使用可能
- カレントファイルの中身を検索する(単一キーワード)
:vimgrep /キーワード1/ % | copen[cwin]
- カレントファイルの中身を検索する(複数キーワードの or)(「\|」でつなぐ)
:vimgrep /キーワード1\|キーワード2/ % | copen[cwin]
- カレントディレクトリにあるファイルすべてを検索する
:vimgrep /キーワード1/ * | copen[cwin]
:vimgrep /キーワード1/ **/* | copen[cwin]
:vimgrep /キーワード1/ **/*.txt | copen[cwin]
- _vimrcに下記が設定されている必要がある。
-----
set grepprg=grep
-----
- カレントファイルの中身を検索する(単一キーワード)
:grep -Hn "キーワード1" % | copen[cwin]
- カレントファイルの中身を検索する(複数キーワードの or)(「-e」を使う)
:grep -Hn -e "キーワード1" -e "キーワード2" % | copen[cwin]
:grep -rHn "キーワード" * | copen[cwin](vimgrepでは「**/*」だったね)