【发布时间】:2013-10-08 18:11:53
【问题描述】:
使用标准的 linux 实用程序(我猜是 sed 和 awk)
抱歉标题含糊不清,我真的不知道如何更好地描述请求。一个更简单的方法是提供一个简单的示例。我有一个包含以下内容的文件:
www.example.com
johnsmith@gmail.com
fredflintstone@gmail.com
bettyboop@gmail.com
www.example2.com
kylejohnson@gmail.com
www.example3.com
chadbrown@gmail.com
joshbeck@gmail.com
www.example4.com
tomtom@gmail.com
jeffjeffries@gmail.com
billnorman@gmail.com
stankubrick@gmail.com
andrewanders@gmail.com
所以,我想做的是将上面的内容转换为:
www.example.com,johnsmith@gmail.com,fredflintstone@gmail.com,bettyboop@gmail.com
www.example2.com,kylejohnson@gmail.com
www.example3.com,chadbrown@gmail.com,joshbeck@gmail.com,
www.example4.com,tomtom@gmail.com,jeffjeffries@gmail.com,billnorman@gmail.com,stankubrick@gmail.com,andrewanders@gmail.com
我认为最简单的做法是执行以下操作:如果该行包含“@”符号,则在该行/字符串的开头输入一个逗号,然后附加该行/字符串到前一行。有人有想法么?我认为,如果每个网站都有统一数量的电子邮件地址,那会更简单,但事实并非如此。
提前致谢!
【问题讨论】:
-
我们可以相信总会有相当于 www.example*.com 的东西将您想要放在一行中的组分开吗?我会认为这个问题是'如果当前行没有@符号,我们开始创建一个新列表,将任何后续记录附加到当前行,直到我们找到没有@符号的下一行'。祝你好运!