Perl从csv文件中删除“空白”行

时间:2014-06-06 13:52:12

标签: perl file csv

我希望使用Perl删除CSV文件中的空白行。

我不太清楚如何做到这一点,因为这些行并不是“空白”(它们只是一堆逗号)。

我还想将输出保存为同名文件,覆盖原文。

我怎么能这样做?

编辑:由于网络限制,我无法使用模块或任何源代码......

3 个答案:

答案 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  ($_ =~ /^\,+$/);' $*)