grepコマンドを使いこなして、膨大なソースコードから特定の文字列を探せるようになりたいです。
- 文字列を検索する
~/grepdir/a/a.txt (中身:pavement1234)grepdirにcdします。
~/grepdir/b/b.txt (中身:pavement9876)
~/grepdir/c/c.txt (中身:PAVEMENT1234)
~/grepdir/d/d.txt (中身:pavement)
~/grepdir/e/e.txt (中身:1234)
$ cd grepdir*./*に対してpavementという文字列を検索します。するとこんな感じに表示されます。
$ grep pavement */*
a/a.txt:pavement1234
b/b.txt:pavement9876
d/d.txt:pavement
- 次に*/*に対してpavementという文字列を大文字・小文字の区別をせず検索します。
$ grep -i pavement */*
a/a.txt:pavement1234
b/b.txt:pavement9876
c/c.txt:PAVEMENT1234
d/d.txt:pavement
- */*に対してpavementという文字列を大文字・小文字の区別をせず検索し、検索結果に対して更に1234という文字列を検索します。
$ grep -i pavement */* | grep 1234
a/a.txt:pavement1234
c/c.txt:PAVEMENT1234
- さて、いろいろなオプションを試してみます。
$ grep -r pavement *-vは不一致行を検索。
a/a.txt:pavement1234
b/b.txt:pavement9876
d/d.txt:pavement
$ grep -v pavement */*-nは行Noを表示。
a/a.txt:
c/c.txt:PAVEMENT1234
d/d.txt:
e/e.txt:1234
$ grep -n pavement */*-Eは拡張正規表現で検索。
a/a.txt:1:pavement1234
b/b.txt:1:pavement9876
d/d.txt:1:pavement
$ grep -E 'p|t' */*-eは正規表現で検索。
a/a.txt:pavement1234
b/b.txt:pavement9876
d/d.txt:pavement
$ grep -e p -e t */*-Lは該当しないファイルを検索。
a/a.txt:pavement1234
b/b.txt:pavement9876
d/d.txt:pavement
$ grep -L pavement */*
c/c.txt
e/e.txt

スポンサードリンク