2016-11-06 5 views
0

私はこのようなデータを持っており、簡単な作業を自動化する必要があります。私は、行の第2の値を確認する必要があり、このような順序で次の行の最初のセルと同じになる:awkを使用して最初の列に基づいて列を変更するにはどうすればよいですか?

First Second 
1 2 
4 6 
10 12 
25 28 
30 35 

は、あなたの出力があるに注意すべき

First Second 
1 4 
4 10 
10 25 
25 30 
30 35 

答えて

1
$ awk 'NR==1; NR>2{print p[1], $1} {split($0,p)} END{print p[1], p[2]}' file 
First Second 
1 4 
4 10 
10 25 
25 30 
30 35 
0

になって

$ awk 'NR > 1 {print $1} {printf $1 "\t"}' file 
1  4 
4  10 
10  25 
25  30 
30 
+1

を 'printfの$ 1 'やシミを行うことはありません:その行は、まだ読まれていないので、間違った、あなたは35を知ることができませんlarはprintf文の書式フィールドに入力データを使用し、常に 'printf"%s "、$ 1'を実行します。 '$ 1'が'%s'のようなprintf書式設定文字を含んでいるときの違いを想像してください。 –

関連する問題