在 5 个逗号分隔值后插入换行符

Inserting a linebreak after 5 comma separated values

我正在尝试像这样转换列表:

name,name,name,name,name,name,name,name,name,name,name,name

name,name,name,name,name
name,name,name,name,name
name,name

我如何使用 bash 行来做到这一点?

通过sed,

$ echo 'name,name,name,name,name,name,name,name,name,name,name,name' | sed 's/\([^,]*\(,[^,]*\)\{4\}\),/\n/g'
name,name,name,name,name
name,name,name,name,name
name,name

[^,]* 匹配任何字符,但不匹配 , 零次或多次。在基本 sed 中,捕获组由 \(...\)

表示