one linerの例

前回にも述べた awkの話です

$ seq 1 20 | xargs -n 5

これで出力は

1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20

となります 要するに seqにより 1 から 20の連続する整数を出力し、それを pipeで xargsに流し込み、オプションにより 5列に整形した結果です

これに awkを用いると

$ seq 1 20 | xargs -n 5 | awk '{print $1 $3 $5}'

のようにすれば、その5列の表の 一列目、三列目、五列目が出力されます その結果は

135
6810
111315
161820

となり列と列が隙間なくうまり分かりにくくなります これに対して

$ seq 1 20 | xargs -n 5 | awk '{print $1"\t"$3"\t"$5}'

とすれば 列の間に tabが挿入され

1	3	5
6	8	10
11	13	15
16	18	20

のように非常に分かりやすくなります こんなことをワシントンDCのラウンジで行っています