Perl:如何在一次传递中删除空格和空行

时间:2013-01-18 13:40:59

标签: perl

我有2个perl脚本,第一个从文件中删除空白lins,第二个删除文件中的所有空格。我想知道,如果可以在1个脚本中连接这两个正则表达式吗?


对于空格,我使用过这个regsub:$str =~ tr/ //d; 而对于空行,我使用了这个正则表达式

while (<$file>) {
    if (/\S/){
    print $new_file $_; }}

2 个答案:

答案 0 :(得分:4)

应该非常简单:只需在if行之前添加tr/ //d

注意:它也会删除仅包含空格的行。如果要保留它们(但音译为空行),请在打印行之前插入音译。

答案 1 :(得分:2)

如果您希望修剪包含空格的行的末尾, 你可能希望它像这样工作:

perl -pi -e 's/\s*$/\n/' f1 f2 f3   #UNIX file format
perl -pi -e 's/\s*$/\r\n/' f1 f2 f3   #DOS file format