grep


grep linux 2016*.txt
linux を含む行を 2016から始まるtxtデータから抽出する。


grep -n linux 2016*.txt
行番号をつけて抽出


grep -n3 linux 2016*.txt
linux を含む行の前後3行を抽出


grep '.' file
空白行い外の行を抽出


メタキャラクタ
\meta meta:メタキャラクタ
.  任意の一文字
^  行の先頭
$  行の末尾
*  0以上の文字
?  0または1文字
+  1以上の文字
[]  [文字グループ]

[例1]
grep [a-z].t file
小文字のアルファベットと三文字目がtの単語を含む行を file から抽出
ant put fortran automovie など これは、スペル途中でも綴り上小文字から三文字目がtなら抽出してしまう。

grep ^[a-z].t file
txt cat set matuda http after get date out return など


[例2]
$ grep '。$' 2016*.txt | wc -l
2034
行末尾が 。 になっている行は、2034行ある
$ grep '。$' 20160901.txt | wc -l
5
5行だったので表示してみる。
$ grep '。$' 20160901.txt
同じコマンドは、矢印上で出てくるのだよ。
なるべく、履歴を使ったらどうか。
楽しいものだ。
そのゴールテープを睨みつけた。
最後の力を、振り絞ったのだが・・・うっ。


[例]
$ grep "漢字" *.* | wc -l
42
$ grep "字" *.* | wc -l
194
$ grep "漢" *.* | wc -l
42
以上より、このディレクトリに存在するデータのうち
漢字の「漢」という文字を含む行は42行あり
漢字と言う単語を含む行も42行のため、「漢」だけを含み「字」を
含まない行は存在しない
よって、漢という文字は、漢字と言う単語を作っている可能性が高い。
と推測される。
42
$ grep "漢字" *.* で全て表示して確認すればいい
そんな暇はないし、何の意味もない検索である。自分で作った文書なんだから
まさか 歴史書の 漢 なんて国名を書いたドキュメントなんかないでしょうに・・
うっ 今書いてしまった・・・エンドレス 再帰になるからこの辺でゲップ?グレプた゛  だ た゜じゃなかったか・・



便利検索
$ grep ^# file   コメント行のみ表示
$ grep ^$ file | wc -l  空白行を数える

複合検索
$ grep ^[a-z] file | grep [あ-ん]$
検索結果
iphone 壊れた
andorid 電池切れるの早
mac 最高


home