我希望使用Perl删除CSV文件中的空白行。
我不太清楚如何做到这一点,因为这些行并不是“空白”(它们只是一堆逗号)。
我还想将输出保存为同名文件,覆盖原文。
我怎么能这样做?
编辑:由于网络限制,我无法使用模块或任何源代码......
答案 0 :(得分:1)
你可以使用一个简单的Perl单线程来做到这一点:
perl -i -ne 'print unless /^[,\s]*$/' <filename>
-n
标志假定您的程序循环:
while(<>) {
print unless /^[,\s]*$/;
}
并且-i
标志表示就地并修改您的输入文件。
注意:如果您担心使用-i
丢失数据,可以指定-i.bak
,perl会自动将原始文件写入<filename>.bak
答案 1 :(得分:0)
更多命令行黑客,
perl -i -ne 'print if /[^,\r\n]/' file.csv
答案 2 :(得分:0)
如果你想把它放在shell脚本中,你可以这样做......
#!/bin/sh
$(perl -i -n -e 'print $_ unless ($_ =~ /^\,+$/);' $*)