Skip to main content

フィルタ. m列目からn列目までを取り出す

Linux

取りたい列

取りたい列cutawkメモ
n 列目cut -f 3awk '{ print $3 }'-
m 列目 から n 列目cut -f 3-5awk '{ print $3,$4,$5 }'-
m 列目 と n 列目cut -f 3,5awk '{ print $3,$5 }'cut: 1,3-5とかも可
m 列目 から 最後までcut -f 6-?-
並べ替えたい-awk '{ print $5,$4,$3 }'-
最後の列-awk '{ print $NF }'列数が固定でないときに便利
最後から2番めの列-awk '{ print $(NF-1) }'マッチしない場合も出てくる。あと3つめ以降は不可

区切り文字について

区切り文字cutawkメモ
区切り文字の初期値タブ空白文字awk: 連続したタブや空白は1つ扱い
区切り文字の変更-d-F-
タブ区切りcutawk -F'\t'-
カンマ区切りcut -d,awk -F,cut,awk: スペースや '', "" はあってもなくても
複数文字区切り-awk -F '::'-
複数文字で区切り-awk -F '[\t ,]+'-
連続した区切り文字はまとめないまとめるawk: 初期値と空白のときだけまとまる
正規表現-awk -F '[\t ,]+'-
区切り文字にマッチしない場合全部出る1列目cut の場合、何列目を指定しても出る

テスト用文字列

txt
a1	b1	c1		e1
a2,b2,,d2
a3 c3 d3 e3
a4 b4 c4 d4 e4 f4
a5