Shell脚本 - 用换行符替换每5个逗号

Jak*_*les 4 unix shell

如何用换行符替换某些输入中的每个第5个逗号?

例如:

1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
Run Code Online (Sandbox Code Playgroud)

1,2,3,4,5
6,7,8,9,10
11,12,13,14,15
Run Code Online (Sandbox Code Playgroud)

寻找使用像sed...... 一样的单线程

Den*_*nis 6

这应该工作:

sed 's/\(\([^,]*,\)\{4\}[^,]*\),/\1\n/g'
Run Code Online (Sandbox Code Playgroud)

例:

$ echo "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15" |
> sed 's/\(\([^,]*,\)\{4\}[^,]*\),/\1\n/g'
1,2,3,4,5
6,7,8,9,10
11,12,13,14,15
Run Code Online (Sandbox Code Playgroud)