【发布时间】:2012-04-06 15:21:06
【问题描述】:
我又问了一个 SED 问题 :)
所以,和上次一样,我正在与电话号码搏斗。这次的问题有点不同。 我的这种组织目前在我的文本文件中:
Areacode: List of phone numbers:
4444 NUM:111111 NUM:2222222 NUM:33333333
5555 NUM:1111111 NUM:2222 NUM:3333333 NUM:44444444 NUM:5555555
现在,每个区号都可以有未知数量的号码,而且电话号码的长度也不是固定的。 我想知道的是,我怎样才能将区号和电话号码结合起来,看起来像这样:
4444-111111, 4444-2222222, 4444-33333333
我的第一个想法是在每个电话号码之前再次添加一个换行符,并将这些部分与正则表达式匹配,然后将第一个记住的项目添加到第二个,第一个到第三个:
\1-\2, \1-\3, etc
当然,因为 sed 只能记住 9 个参数,并且一行中可以有 10 个以上的数字,所以这是行不通的。此外,电话号码的非固定列表也使这成为不可能。 我再次主要关注 SED 选项,因为我一直在努力精通它 - 但当然欢迎使用其他工具提供更有效的解决方案!
【问题讨论】:
标签: regex linux bash parsing sed