0

行の最後の列を次の行の最初の列に結合したい。例えば:

cat FILE
12  15
22  25
32  35
42  45

このように参加するには:

15  22
25  32
35  42

15(最後の列) は22(次の行の最初の列) と結合されます。

私の解決策は次のとおりです。しかし、これを行うための簡単なコマンドtr '\n' '@' < FILE | tr '\t' '\n' | grep '@' | grep -v '@$' | tr '@' '\t' があるかもしれません。awk

4

4 に答える 4

3

とった!

$ awk 'BEGIN{OFS="\t"}{if (NR==1) {a=$2} else {print a,$1;a=$2}}' file
15      22
25      32
35      42
  • 'BEGIN{OFS="\t"}ファイル区切りをタブとして設定します。
  • {if (NR==1) {a=$2}最初の行では、2番目のフィールドを保存するだけです。
  • else {print a,$1;a=$2}}残りの場合、前の行の 2 番目のフィールドと現在の行の 1 番目のフィールドを出力します。このようにして、最後のレコードを印刷しません。
于 2013-06-18T11:27:10.827 に答える
0
awk 'NR!=1{print $1,p} {p=$2}'
于 2017-02-01T20:00:19.077 に答える