在 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 中,捕获组由 \(...\)
表示
我正在尝试像这样转换列表:
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 中,捕获组由 \(...\)