目次(まとめ)

◾️ 「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" といった具合に、組み合わせて実行することも可能です。