根据awk中的模式添加单词并删除行

时间:2014-07-28 12:09:47

标签: unix awk sed gawk

如果文件中包含前三个字符串相同的行,我想将第4和第5个字符串中其他行中的信息附加到第4个字符串的第一行,并删除这些行。

例如,我有像

这样的行
<a.com> <b.com> <c.com> <site> <domain> <lang>
<a.com> <b.com> <c.com> <site2> <domain2> <lang>
<a.com> <b.com> <c.com> <site3> <domain2> <lang>

输出应该像

<a.com> <b.com> <c.com> <site,site2,site3,domain2> <domain> <lang>

我尝试使用sed和awk,但没有成功。我成功地附加了信息但是不能删除这些行

由于 Pallavi

1 个答案:

答案 0 :(得分:0)

sed 'N;N;G;h
s/\(\(<[^>]\{1,\}> *\)\{3\}\)<\([^>]\{1,\}\)>\(.*\)\(\n\)\1 *<\([^>]\{1,\}\)> *\(\(<[^>]\{1,\}> *\)\{2\}\) *\5/\1<\3,\6>\4\5/
t void
:void
s/\(\(<[^>]\{1,\}> *\)\{3\}\)<\([^>]\{1,\}\)>\(.*\)\(\n\)\1 *<\([^>]\{1,\}\)> *\(\(<[^>]\{1,\}> *\)\{2\}\) *\5/\1<\3,\6>\4\5/
t ok
x;b
:ok
s/.$//' YourFile

基于这3行为您的文件工作,但由于很多小组参考,不容易阅读或理解。