假设我有一个带结构的大型输入流:
key1 valA,valB
key2 valC,valD,valE
除了预定义的分隔符','和''之外,每个键的值的数量是无界的,键/值文本也是如此。
是否有一个sed one-liner要逐行“压平”它?
key1 valA
key1 valB
key2 valC
key2 valD
key2 valE
我意识到这是一个非常简单的Awk或Perl脚本。只是想知道是否可以使用直接正则表达式来完成。
答案 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
的用途)。多数民众赞成。