目次(まとめ)
◾️ 「sed」コマンドを使って、行番号を指定して行を取り出す
◾️ 「grep」コマンドを使って、文字列を指定して行を取り出す
◾️ 「less」コマンドを使って、ファイルの中身を表示する
こんにちは、みっちゃんです。
今回の記事では、行を取り出すためのコマンドである「sed」と「grep」、ファイルの中身を表示するためのコマンドである「less」を紹介します。
「sed」コマンドを使って、行番号を指定して行を取り出す
例として、以下のようなタブ区切りのテキストファイル(test.txt)があったとします。
### test.txt ###
001 A 90
002 B 50
003 C 56
004 D 84
005 E 49
このファイルから、2行目を取り出したい場合には、以下のように実行します。
$ sed -n 2p test.txt
002 B 50
また、4行目から5行目にかけて取り出したい場合には、以下のように実行します。
$ sed -n 4,5p test.txt
004 D 84
005 E 49
これらを合わせて、"2行目" と "4行目から5行目" を取り出したい場合には、"-e" オプションでつないで以下のように実行します。
$ sed -n -e 2p -e 4,5p test.txt
002 B 50
004 D 84
005 E 49
「grep」コマンドを使って、文字列を指定して行を取り出す
「sed」コマンドでは、ファイルの行番号を指定することで、対象となる行を取り出しました。
「grep」コマンドは、行番号ではなく、文字列を指定して、行を取り出します。
例えば、"B" という文字列が入っている行を取り出したい場合には、以下のように実行します。
$ grep "B" test.txt
002 B 50
「less」コマンドを使って、ファイルの中身を表示する
「less」コマンドは、特にファイルサイズが大きいファイルについて、その中身を表示・確認する際に便利なコマンドです。
ここでは、例として、以前の記事で使用したファイル(/Users/***/Downloads/001_00.csv)を開いてみます。
実行方法は、以下の通りです。
$ less /Users/***/Downloads/001_00.csv
このファイルは、CSVファイルなので、コンマ区切りのファイルになっています。
また、上のように実行すると、それぞれの行がウィンドウの右端で折り返されてしまいます。
折り返されないようにするためには、以下のように、"-S" オプションをつけて実行します。
# less -S /Users/***/Downloads/001_00.csv
また、行数をつけて表示するには、"-N" オプションをつけて実行します。
# less -N /Users/***/Downloads/001_00.csv
オプションについては、"-SN" といった具合に、組み合わせて実行することも可能です。