与 awk 匹配模式后的突破线

Pai*_*lou 0 awk

我有这种文件

A 1,2,3,4
B 1
C 1,2 
Run Code Online (Sandbox Code Playgroud)

我想得到 awk 这个输出:

A 1
A 2
A 3
A 4
B 1 
C 1 
C 2
C 3
Run Code Online (Sandbox Code Playgroud)

试过的代码:

sed 's/,/\n&/g' file
Run Code Online (Sandbox Code Playgroud)

对 awk 有什么想法吗?

Rav*_*h13 5

您能否尝试使用多字段分隔符概念,使用 GNU 中显示的示例编写和测试awk

awk 'BEGIN{FS="[ ,]"} {for(i=2;i<=NF;i++){print $1,$i}}' Input_file
Run Code Online (Sandbox Code Playgroud)

第二种解决方案:拆分第二个字段值。

awk '{num=split($2,arr,",");for(i=1;i<=num;i++){print $1,arr[i]}}' Input_file
Run Code Online (Sandbox Code Playgroud)