▼すべてを開く。
▲すべてを閉じる。
$ cat data3.txt ,日の出,南中,日の入り 5月1日,5:09,11:56,18:44 5月2日,5:08,11:56,18:45 5月3日,5:07,11:56,18:46 5月4日,5:06,11:56,18:46 5月5日,5:05,11:56,18:47
$ cut -d , -f 1,4 < data3.txt ,日の入り 5月1日,18:44 5月2日,18:45 5月3日,18:46 5月4日,18:46 5月5日,18:47
cutコマンドで-dオプション、区切り文字を「,」-fオプション、表示する列位置「1,4」を指定し、リダイレクト「<」でコマンドに入力するファイル「data3.txt」を指定する。ファイルの第1列と第4列が表示される。
$ cat data2.txt 日の出 南中 日の入り 5月1日 5:09 11:56 18:44 5月2日 5:08 11:56 18:45 5月3日 5:07 11:56 18:46 5月4日 5:06 11:56 18:46 5月5日 5:05 11:56 18:47
$ cut -d \ -f 4 < data2.txt 日の入り 18:44 18:45 18:46 18:46 18:47
cutコマンドで-dオプション、区切り文字を表す「\ 」表示する列「4」を指定し、リダイレクト「<」でコマンドに入力するファイル「data2.txt」を指定する。標準出力(この場合は画面)にファイルの第4列が表示される。元ファイルのデータは、列がスペースで区切られている必要がある。また、そのスペースは1つでなければ正しく指定列を表示できない。
$ cat data4.txt 日の出 南中 日の入り 5月1日 5:09 11:56 18:44 5月2日 5:08 11:56 18:45 5月3日 5:07 11:56 18:46 5月4日 5:06 11:56 18:46 5月5日 5:05 11:56 18:47
$ cut -d \ -f 4 < data4.txt 日の入り 18:44 11:56 5:07
上の例では、第2列の前にスペースが1個、2個、3個,,,5個と入っている。このサンプルファイルを元にしたコマンド実行結果を見ると、3つ目のスペースの後にくる列を表示していることがわかる。単にスペースの数を数えているだけで、列の数を判断しているのではないことが判る。
$ cat data1.txt 日の出 南中 日の入り 5月1日 5:09 11:56 18:44 5月2日 5:08 11:56 18:45 5月3日 5:07 11:56 18:46 5月4日 5:06 11:56 18:46 5月5日 5:05 11:56 18:47
$ cut -f 1,4 < data1.txt 日の入り 5月1日 18:44 5月2日 18:45 5月3日 18:46 5月4日 18:46 5月5日 18:47
cutコマンドで-fオプション、表示する列「1,4」を指定し、リダイレクト「<」でコマンドに入力するファイル「data1.txt」を指定する。ファイルの第1列と第4列が表示される。元ファイルのデータは、列がタブで区切られている必要がある。
$ cat data1.txt 日の出 南中 日の入り 5月1日 5:09 11:56 18:44 5月2日 5:08 11:56 18:45 5月3日 5:07 11:56 18:46 5月4日 5:06 11:56 18:46 5月5日 5:05 11:56 18:47
$ cut -f 4 < data1.txt 日の入り 18:44 18:45 18:46 18:46 18:47
cutコマンドで-fオプション、表示する列「4」を指定し、リダイレクト「<」で標準入力をファイルに切り替え、コマンドに入力するファイル「data1.txt」を指定する。コマンドの実行結果は、標準出力(この場合は画面)にファイルの第4列が表示される。
元ファイルのデータは、列がタブで区切られている必要がある。
cutコマンドは、タブの数を数えて列を判断している。そのため、タブの数がおかしいと、意図した列を表示することができない。
第2列の前のタブを増やしたサンプル$ cat data1-.txt 日の出 南中 日の入り 5月1日 5:09 11:56 18:44 5月2日 5:08 11:56 18:45 5月3日 5:07 11:56 18:46 5月4日 5:06 11:56 18:46 5月5日 5:05 11:56 18:47
$ cut -f 1,4 < data1-.txt 日の入り 5月1日 18:44 5月2日 11:56 5月3日 5:07 5月4日 5月5日
上の例では、第2列の前にタブが1個、2個、3個,,,5個と入っている。このサンプルファイルを元にしたコマンド実行結果を見ると、3つ目のタブの後にくる列を表示していることがわかる。単にタブの数を数えているだけで、列の数を判断しているのではないことが判る。
$ cat data1.txt 日の出 南中 日の入り 5月1日 5:09 11:56 18:44 5月2日 5:08 11:56 18:45 5月3日 5:07 11:56 18:46 5月4日 5:06 11:56 18:46 5月5日 5:05 11:56 18:47
$ cut -f 3- < data1.txt 南中 日の入り 11:56 18:44 11:56 18:45 11:56 18:46 11:56 18:46 11:56 18:47
cutコマンドで-fオプション、表示する列「3」とそれ以降を示す「-」を数字の後に付け、リダイレクト「<」でコマンドに入力するファイル「data1.txt」を指定する。ファイルの第3列以降が表示される。元ファイルのデータは、列がタブで区切られている必要がある。
$ cat data1.txt 日の出 南中 日の入り 5月1日 5:09 11:56 18:44 5月2日 5:08 11:56 18:45 5月3日 5:07 11:56 18:46 5月4日 5:06 11:56 18:46 5月5日 5:05 11:56 18:47
$ cut -f -2 < data1.txt 日の出 5月1日 5:09 5月2日 5:08 5月3日 5:07 5月4日 5:06 5月5日 5:05
cutコマンドで-fオプション、指定列迄を示す「-」を数字の前に付けて列を「2」と指定、リダイレクト「<」でコマンドに入力するファイル「data1.txt」を指定する。ファイルの第2列目までが表示される。元ファイルのデータは、列がタブで区切られている必要がある。