指定したフィールドを抜き出す・cutコマンド †
cutコマンドを利用して指定したフィールドと指定したフィールド範囲を抜き出す方法を記します。
関連記事 †
cutコマンドについて †
cutコマンドのデフォルトの区切り文字はタブとなっています。
区切り文字を変更するには、-dオプションを利用します。
スペースを区切り文字にした例とカンマを区切り文字した例を以下に記します。
使用したテストデータは以下の3つです。
- カンマ区切り
data.csv
$ cat data.csv
centos,redhat,fedora,scientific
debian,ubuntu,knoppix,mint
suse,vine,arch,puppy
指定したフィールドを取り出す †
指定したフィールドを取り出す例を以下に記します。
2フィールド目を取り出します。
$ cut -f 2 data.tsv
redhat
ubuntu
vine
以下のように記述しても同様の動作となります。
$ cat data.tsv | cut -f 2
redhat
ubuntu
vine
3フィールド目を取り出します。
$ cut -d ' ' -f 3 data.txt
fedora
knoppix
arch
以下のように記述しても同様の動作となります。
$ cat data.txt | cut -d ' ' -f 3
fedora
knoppix
arch
4フィールド目を取り出します
$ cut -d , -f 4 data.csv
scientific
mint
puppy
以下のように記述しても同様の動作となります。
$ cat data.csv | cut -d , -f 4
scientific
mint
puppy
指定したフィールド範囲を取り出す †
指定したフィールド範囲を取り出す例を以下に記します。
2番めから3番めのフィールドを取り出します。
$ cut -f 2-3 data.tsv
redhat fedora
ubuntu knoppix
vine arch
以下のように記述しても同様の動作となります。
$ cat data.tsv | cut -f 2-3
redhat fedora
ubuntu knoppix
vine arch
$ cut -f 2-3 -d ' ' data.txt
redhat fedora
ubuntu knoppix
vine arch
以下のように記述しても同様の動作となります。
$ cat data.txt | cut -f 2-3 -d ' '
redhat fedora
ubuntu knoppix
vine arch
$ cut -f 2-3 -d , data.csv
redhat,fedora
ubuntu,knoppix
vine,arch
以下のように記述しても同様の動作となります。
$ cat data.csv | cut -f 2-3 -d ,
redhat,fedora
ubuntu,knoppix
vine,arch
以上のように-f 開始フィールド-終了フィールドを指定すると指定した範囲を取り出すことができます。
指定したフィールドから最後まで †
終了フィールドを省略すると指定した開始フィールドから最後までが表示されます。
以下の例は、3フィールド目から最後まで表示しています。
$ cat data.tsv
centos redhat fedora scientific
debian ubuntu knoppix mint
suse vine arch puppy
$ cut -f 3- data.tsv
fedora scientific
knoppix mint
arch puppy
先頭から指定したフィールドまで †
開始フィールドを省略すると先頭から指定した終了フィールドまで表示されます。
以下の例は3フィールド目まで表示しています。
$ cat data.tsv
centos redhat fedora scientific
debian ubuntu knoppix mint
suse vine arch puppy
$ cut -f -3 data.tsv
centos redhat fedora
debian ubuntu knoppix
suse vine arch