【发布时间】:2016-11-09 12:52:03
【问题描述】:
我有疑问。我想将两三行有条件的合并成一行有特定的打印。
输入:文件有 6 行和制表符分隔
LOL h/h 2 a b c
LOLA h/h 3 b b b
SERP w/w 4 c c c
DARD s/s 5 d d d
GIT w/w 6 a b c
GIT h/h 6 a a b
GIT d/d 6 a b b
LOL h/h 7 a a a
输出:有2个条件:if($1s 相同,$3s 相同)合并行与特定打印
LOL h/h 2 a b c
LOLA h/h 3 b b b
SERP w/w 4 c c c
DARD s/s 5 d d d
GIT w/w 6 a b c h/h 6 a a b d/d 6 a b b
LOL h/h 7 a a a
我有这个代码:
awk -F'\t' -v OFS="\t" 'NF>1{a[$1] = a[$1]"\t"$2"\t"$3"\t"$4"\t"$5"\t"$6};END{for(i in a){print i""a[i]}}'
但它仅由第一列合并,我不确定使用此代码是否好。
【问题讨论】:
-
在输入中,我只看到一个文件...你能添加第二个文件吗
-
也可以在一个文件中复制$1
-
对不起,我想用这个条件合并行。我修好了。