今回はファイルの中身を見たり検索したりしてみよう。
まず事前に中身のあるファイルを用意する。
全て見知らぬコマンドを利用しているが今回はこの説明は割愛する。
1 | # seq -w 1 10 >sample1.txt |
cat
主にファイルの内容を表示するために利用する。
1 | # cat sample1.txt |
head
先頭10行を表示する。-n number
のオプションを指定することで、指定行数表示する。
1 | # head -n5 sample1.txt |
tail
末尾10行を表示する。-n number
のオプションを指定することで、指定行数表示する。
1 | # tail -n5 sample1.txt |
grep
検索文字列に一致する行を検索して出力する。正規表現も利用可能。
例: sample1.txt
の中から1
という文字が入っている行を表示する。
1 | # grep 1 sample1.txt |
| (パイプ)
複数の処理の入出力をつなぐための仕組み。
例: sample1.txt
の中から先頭5行の中から1
という文字が入っている行を表示する。
1 | # head -n5 sample1.txt | grep 1 |
パイプを使うことでより絞り込んだ検索をすることができるようになる。
高機能なgrep
grepには大量にオプションがある。(詳細は man grep
で確認!)
その中でも特に便利なオプションを紹介しておく。
--color
検索文字列に色をつけて表示する。
-c
検索にマッチした行をカウントする。
-number
検索にマッチした前後number行を表示する。
-A number
検索にマッチした行からnumber行下を表示する。
-B number
検索にマッチした行からnumber行上を表示する。
-e
パターンマッチを指定して検索ができる。
例:
sample1.txt
の中から1
または2
の文字を含む行を表示する。1
2
3
4# grep -e 1 -e 2 sample1.txt
01
02
10-v
指定した文字列にマッチしない行を表示する。
-i
大文字小文字を区別しない。
なお、grep
はもっと機能があり、是非man
でチェックしてもらいたい。
また、パイプでつげて、grepを複数書くこともできる(少しぶかっこうではあるが)。
まずは、目的のものを思い通りに表示できる手法を身につけ、そこからスマートなやり方を考えると時間はかかるかもしれないが着実にものにすることができるだろう。