文字列を検索したい grep
▼コマンド
【 grep 】
・指定した検索にマッチする文字列を表示
grep…
その意味するところは「ファイル全体から (global) 正規表現 (regular expression) に一致する行を表示(print)する」である。(wikipediaより)
▼【 grep 】主なオプション
-c パターンを含む行数のみを表示
-h 検索結果の先頭にマッチしたファイル名を同時に表示
-i アルファベットの大文字小文字の区別をしない
-l 検索条件にマッチしたファイル名のみを表示
-n 各行の先頭にファイルの行番号を表示
-s 存在しないファイルや読めないファイルに対してのエラーメッセージを抑制する
-v パターンに一致しない行を出力する
-w パターンの検索を単語として行う
-E 拡張正規表現を使用する
-F 固定文字列を使用する
▼その他
grepには、grep, fgrep, egrepという3つのコマンドがあり、それぞれの目的に合わせて使い分けます。
・grep…正規表現を使った文字列の検索を行う
・fgrep…正規表現は使用せずに文字列の検索を行う。オプション-E と同じような動作をする
・egrep…grepの正規表現よりも強力な正規表現を用いて検索する。オプション-F と同じような動作をする
▼使用例
こんなファイルがあったとします。
ID,name,age
1,aaa,20
2,bbb,34
3,ccc,40
4,ddd,35
5,eee,20
//20を取り出したい時
$ grep 20 test.csv
1,aaa,20
5,eee,20
//20以外を取り出したい時
$ grep -v 20 test.csv
ID,name,age
2,bbb,34
3,ccc,40
4,ddd,35
でも、「1行目」の「5」を取り出したい時。
普通にgrepだと、こうなっちゃう。。
4,ddd,35
5,eee,20
grep 以外のコマンドも使わないとですね。。
grepは超使うので、勉強のためにももっと書きたい(・∀・)