awk:特定の行の3列目以降だけを表示する
test.datファイルの3行目の2列目以降だけを表示
awk '条件式{実行文A 実行文B}' ファイル名という構造。ここでは実行文Aはforブロックになるよう{ }で囲っている。NRはデータファイルのレコード数(行数)、NFはフィールド数(列数)
なるデータファイルdata.datから1000行目のデータについて
なるデータファイルsnap.datを取り出す。
もしくは、snap.awkというファイルを用意して、その中に
と書いておいて
awk -f snap.awk < data.dat > snap.dat
などとする。
awk 'NR==3{{for(i=2;i<NF;i++)printf("%s ",$i) }print($NF)}' test.dat
awk '条件式{実行文A 実行文B}' ファイル名という構造。ここでは実行文Aはforブロックになるよう{ }で囲っている。NRはデータファイルのレコード数(行数)、NFはフィールド数(列数)
---- t0001 s x1 y1 x2 y2 .... xn yn ... t1000 s x1 y1 x2 y2 .... xn yn ----
なるデータファイルdata.datから1000行目のデータについて
--- x1 y1 x2 y2 ... xn yn ---
なるデータファイルsnap.datを取り出す。
awk 'NR==1000{for(i=3;i<=NF-1;i=i+2){printf("%s %s\n",$i,$(i+1))}}' data.dat > snap.dat
もしくは、snap.awkというファイルを用意して、その中に
NR==1000{ for(i=3;i<=NF-1;i=i+2){ printf("%s %s\n",$i,$(i+1)) } }
と書いておいて
awk -f snap.awk < data.dat > snap.dat
などとする。
コメント 0