yas*_*neh 4 awk text-processing
我有以下数据作为输入:
A 1,2
B 3,2,5
C 6,7
D 1,3,5,8
Run Code Online (Sandbox Code Playgroud)
如何使用 AWK 获得以下输出?
A 1
A 2
B 3
B 2
B 5
C 6
C 7
D 1
D 3
D 5
D 8
Run Code Online (Sandbox Code Playgroud)
$ awk -F '[ ,]' '{ for (i = 2; i <= NF; ++i) print $1, $i }' file
A 1
A 2
B 3
B 2
B 5
C 6
C 7
D 1
D 3
D 5
D 8
Run Code Online (Sandbox Code Playgroud)
这会将行视为由以空格或逗号分隔的字段组成。对于每一行,awk
程序将迭代第二个字段直到行尾。对于每个字段,它与当前字段一起输出该行的第一个字段。
awk '{gsub(/,/, "\n" $1 " "); print}' file
Run Code Online (Sandbox Code Playgroud)
在这个解决方案中,我们只是将每个“ ,
”替换为"\n$1 "
归档时间: |
|
查看次数: |
547 次 |
最近记录: |