行間で列を移動する

行間で列を移動する

私はtxtファイルを扱っていますが、最初の列/フィールドはそのまま残り、2番目の列は1行下に移動しようとしています。これを試しましたが、一致しないエラーが発生しました。

awk  '{for(i=1; i<NR; i++) FNR==i {print i, $(i+1)}}’ filename

ベストアンサー1

欲しいと思う

awk '{tmp = $2; $2 = prev; prev = tmp; print}' filename

列間のスペースは単一のスペースに縮小されます。

はい

$ seq 12 | paste - - -
1       2       3
4       5       6
7       8       9
10      11      12

$ seq 12 | paste - - - | awk '{tmp = $2; $2 = prev; prev = tmp; print}' 
1  3
4 2 6
7 5 9
10 8 12

おすすめ記事