我有grep --color -EH "^([^,]*\,){3}5" try.csv
及其输出是这样的:
try.csv:410,30151010,K,5001,,,,,,,,,,,,,,,,,,,,,,,,,,,,,512
try.csv:652,20151010,K,5001,,,,,,,,,,,,,,,,,,,,,,,,,,,,,41
try.csv:109,30151010,R,5005,,,,,,,,,,,,,,,,,,,,,,,,,,,,,455
我尝试了grep --color -EH "^([^,]*,){3}5" try.csv | perl -ne 'print ",$_"'
但是输出看起来像这样:
,try.csv:410,30151010,K,5001,,,,,,,,,,,,,,,,,,,,,,,,,,,,,512
,try.csv:652,20151010,K,5001,,,,,,,,,,,,,,,,,,,,,,,,,,,,,41
,try.csv:109,30151010,R,5005,,,,,,,,,,,,,,,,,,,,,,,,,,,,,455
预期输出:
try.csv:,410,30151010,K,5001,,,,,,,,,,,,,,,,,,,,,,,,,,,,,512
try.csv:,652,20151010,K,5001,,,,,,,,,,,,,,,,,,,,,,,,,,,,,41
try.csv:,109,30151010,R,5005,,,,,,,,,,,,,,,,,,,,,,,,,,,,,455
预先感谢,顺便说一下,我对Perl和Shell还是很陌生的。 即时搜索CSV文件。
答案 0 :(得分:0)
您可以使用sed
插入逗号,
$ grep --color -EH "^([^,]*\,){3}5" try.csv | sed 's/:/&,/'
s/:/&,/
:特殊字符&在替换中是指字符串中匹配的部分。并且您可以在&
后面添加一个逗号以满足您的要求。