Append words and delete the lines based on pattern in awk
如果文件的前三行相同,那么我想将第4和5字符串中其他行中的信息附加到第4字符串中的第一行,并删除这些行。
例如,我有像
这样的行
1 2 3 | <b.com> <c.com> <site> <domain> <lang> <b.com> <c.com> <site2> <domain2> <lang> <b.com> <c.com> <site3> <domain2> <lang> |
输出应类似于
1 | <b.com> <c.com> <site,site2,site3,domain2> <domain> <lang> |
我在sed和awk中尝试过,但没有成功。我成功添加了信息,但是无法删除行
谢谢
帕拉维
1 2 3 4 5 6 7 8 9 10 11 | sed 'N;N;G;h s/\\(\\(<[^>]\\{1,\\}> *\\)\\{3\\}\\)<\\([^>]\\{1,\\}\\)>\\(.*\\)\\(\ \\)\\1 *<\\([^>]\\{1,\\}\\)> *\\(\\(<[^>]\\{1,\\}> *\\)\\{2\\}\\) *\\5/\\1<\\3,\\6>\\4\\5/ t void :void s/\\(\\(<[^>]\\{1,\\}> *\\)\\{3\\}\\)<\\([^>]\\{1,\\}\\)>\\(.*\\)\\(\ \\)\\1 *<\\([^>]\\{1,\\}\\)> *\\(\\(<[^>]\\{1,\\}> *\\)\\{2\\}\\) *\\5/\\1<\\3,\\6>\\4\\5/ t ok x;b :ok s/.$//' YourFile |
基于这3行为您的文件工作,但由于有很多组引用,因此不易阅读或理解。