【发布时间】:2019-01-09 15:58:01
【问题描述】:
我有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 文件中搜索。
【问题讨论】:
-
perl -pe's/^try.csv:\K/,/' -
sed 's/^[^:]*:/&,/' -
sed 工作得非常好。谢谢。 CWLiu 你能向我解释一下这是如何工作的吗?
-
@CWLiu:
sed 's/^[^:]*:/&,/'与sed 's/:/&,/'相同