Concatenate/merge 列
Concatenate/merge columns
文件(~50,000 列)
A1 2 123 f f j j k k
A2 10 789 f o p f m n
输出
A1 2 123 ff jj kk
A2 10 789 fo pf mn
我基本上想从第 4 列开始将每两列连接成一列。我们如何在 awk 或 sed 中做到这一点?
在 awk 中是可以的。见下文
:~/t> more test.txt
A1 2 123 f f j j k k
:~/t> awk '{for(i=j=4; i < NF; i+=2) {$j = $i$(i+1); j++} NF=j-1}1' test.txt
A1 2 123 ff jj kk
抱歉刚刚注意到你举了两行作为例子...
:~/t> more test.txt
A1 2 123 f f j j k k
A2 10 789 f o p f m n
:~/t> awk '{for(i=j=4; i < NF; i+=2) {$j = $i$(i+1); j++} NF=j-1}1' test.txt
A1 2 123 ff jj kk
A2 10 789 fo pf mn
文件(~50,000 列)
A1 2 123 f f j j k k
A2 10 789 f o p f m n
输出
A1 2 123 ff jj kk
A2 10 789 fo pf mn
我基本上想从第 4 列开始将每两列连接成一列。我们如何在 awk 或 sed 中做到这一点?
在 awk 中是可以的。见下文
:~/t> more test.txt
A1 2 123 f f j j k k
:~/t> awk '{for(i=j=4; i < NF; i+=2) {$j = $i$(i+1); j++} NF=j-1}1' test.txt
A1 2 123 ff jj kk
抱歉刚刚注意到你举了两行作为例子...
:~/t> more test.txt
A1 2 123 f f j j k k
A2 10 789 f o p f m n
:~/t> awk '{for(i=j=4; i < NF; i+=2) {$j = $i$(i+1); j++} NF=j-1}1' test.txt
A1 2 123 ff jj kk
A2 10 789 fo pf mn