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

时间:2015-01-19 07:35:43

标签: linux bash csv

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

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 line执行此操作?

1 个答案:

答案 0 :(得分:1)

通过sed,

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

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

表示