【发布时间】:2013-07-20 17:57:30
【问题描述】:
我有一个文本文件,每行有 1 个或多个电子邮件 ID。例如
id:123, name:test, id: 5678, name john, address:new york
id:567, name:bob
id:3643, name:meg, id: 6721, name kate, address:la
现在,问题是 id:value 可能在一行中出现一次或多次。如何提取所有 id:value 对以便输出为,
id:123, id:5678
id:567
id:3643, id:6721
我尝试了egrep -o,但这是将每个id:value 对放在单独的行中。
sed/awk 应该可以解决问题,但我是菜鸟
不想使用Perl,因为这需要安装 Perl。
编辑:
在对数据文件的进一步分析中,我发现分隔符不一致,即并非所有行都是, 分隔的。有些甚至用: 和| 分隔。此外,, 出现在地址值字段中。即address:52nd st, new york。这可以在awk 中使用正则表达式完成吗?
【问题讨论】: