このエントリーをはてなブックマークに追加


指定したフィールドを抜き出す・cutコマンド

cutコマンドを利用して指定したフィールドと指定したフィールド範囲を抜き出す方法を記します。


関連記事

cutコマンドについて

cutコマンドのデフォルトの区切り文字はタブとなっています。
区切り文字を変更するには、-dオプションを利用します。
スペースを区切り文字にした例とカンマを区切り文字した例を以下に記します。
使用したテストデータは以下の3つです。

  • タブ区切り filedata.tsv
    $ cat data.tsv 
    centos	redhat	fedora	scientific
    debian	ubuntu	knoppix	mint
    suse	vine	arch	puppy
  • スペース区切り filedata.txt
    $ cat data.txt 
    centos redhat fedora scientific
    debian ubuntu knoppix mint
    suse vine arch puppy
  • カンマ区切り filedata.csv
    $ cat data.csv 
    centos,redhat,fedora,scientific
    debian,ubuntu,knoppix,mint
    suse,vine,arch,puppy

指定したフィールドを取り出す

指定したフィールドを取り出す例を以下に記します。

タブが区切り文字の場合 filedata.tsv

2フィールド目を取り出します。

$ cut -f 2 data.tsv 
redhat
ubuntu
vine

以下のように記述しても同様の動作となります。

$ cat data.tsv | cut -f 2
redhat
ubuntu
vine

区切り文字がスペース filedata.txt

3フィールド目を取り出します。

$ cut -d ' ' -f 3 data.txt 
fedora
knoppix
arch

以下のように記述しても同様の動作となります。

$ cat data.txt | cut -d ' ' -f 3
fedora
knoppix
arch

区切り文字がカンマ filedata.csv

4フィールド目を取り出します

$ cut -d , -f 4 data.csv
scientific
mint
puppy

以下のように記述しても同様の動作となります。

$ cat data.csv | cut -d , -f 4
scientific
mint
puppy

指定したフィールド範囲を取り出す

指定したフィールド範囲を取り出す例を以下に記します。
2番めから3番めのフィールドを取り出します。

タブが区切り文字の場合 filedata.tsv

$ 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

区切り文字がスペース filedata.txt

$ 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

区切り文字がカンマ filedata.csv

$ 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


添付ファイル: filedata.csv 550件 [詳細] filedata.tsv 631件 [詳細] filedata.txt 615件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:27:20