Perl删除“;“空白”;csv文件中的行
我希望使用Perl删除CSV文件中的空行 我不太确定该怎么做,因为这些行并不完全是“空白”(它们只是一堆逗号) 我还想将输出保存为同名文件,覆盖原始文件 我怎么能这样做呢Perl删除“;“空白”;csv文件中的行,perl,file,csv,Perl,File,Csv,我希望使用Perl删除CSV文件中的空行 我不太确定该怎么做,因为这些行并不完全是“空白”(它们只是一堆逗号) 我还想将输出保存为同名文件,覆盖原始文件 我怎么能这样做呢 编辑:由于网络限制,我不能使用模块或任何源代码…更多的是命令行黑客 perl -i -ne 'print if /[^,\r\n]/' file.csv 如果你想把它放在一个shell脚本中,你可以这样做 #!/bin/sh $(perl -i -n -e 'print $_ unless ($_ =~ /^\,+$/);
编辑:由于网络限制,我不能使用模块或任何源代码…更多的是命令行黑客
perl -i -ne 'print if /[^,\r\n]/' file.csv
如果你想把它放在一个shell脚本中,你可以这样做
#!/bin/sh
$(perl -i -n -e 'print $_ unless ($_ =~ /^\,+$/);' $*)
您可以使用简单的Perl one liner实现这一点:
perl -i -ne 'print unless /^[,\s]*$/' <filename>
-i
标志意味着输入文件已就位并已修改
注意:如果您担心使用
-i
丢失数据,可以指定-i.bak
,perl将自动将原始文件写入。bak
请注意,如果您可以在web上看到模块,则可以将该模块复制并粘贴到代码中。模块不需要安装才能发挥作用。前几天我曾想过这一点,但出于某种原因,我从未真正研究过它是否可行。。。谢谢我建议你会发现没有任何源代码是很难做到的:-@user3707618它可以就地编辑。在执行之前进行备份。很好。在程序中做这样的事情有什么方法吗?我怎么把它放在程序中间,使它重写原始文件?这就是你要做的吗?我假设您有一个脚本要添加此修复程序。否则,您可以将perl放在shebang中。
while(<>) {
print unless /^[,\s]*$/;
}