每组重复另一个被捕获的组

时间:2015-06-23 05:28:07

标签: regex sed

假设我有一个带结构的大型输入流:

key1 valA,valB
key2 valC,valD,valE

除了预定义的分隔符','和''之外,每个键的值的数量是无界的,键/值文本也是如此。

是否有一个sed one-liner要逐行“压平”它?

key1 valA
key1 valB
key2 valC
key2 valD
key2 valE

我意识到这是一个非常简单的Awk或Perl脚本。只是想知道是否可以使用直接正则表达式来完成。

1 个答案:

答案 0 :(得分:1)

awk在这里伙伴:

AMD$ awk '{gsub(/,/,"\n"$1" ")}1' File
key1 valA
key1 valB
key2 valC
key2 valD
key2 valE

只需替换(,后跟newline后跟first field)行中的所有space。然后打印所有行(这就是1的用途)。多数民众赞成。