Unix 根据awk中的模式追加单词并删除行
如果文件的前三行字符串相同,我想将第四行和第五行字符串中其他行中的信息附加到第四行字符串中的第一行,并删除这些行 例如,我有这样的线条Unix 根据awk中的模式追加单词并删除行,unix,awk,sed,gawk,Unix,Awk,Sed,Gawk,如果文件的前三行字符串相同,我想将第四行和第五行字符串中其他行中的信息附加到第四行字符串中的第一行,并删除这些行 例如,我有这样的线条 <a.com> <b.com> <c.com> <site> <domain> <lang> <a.com> <b.com> <c.com> <site2> <domain2> <lang> <a.com>
<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,但没有成功。我成功地添加了信息,但无法删除行
谢谢
帕拉维
根据这3行内容处理您的文件,但由于大量的组参考,因此不容易阅读或理解。显示您的成功代码
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