使用Perl,如何用换行符替换文件中的所有空格?

时间:2009-07-28 14:26:48

标签: perl whitespace carriage-return

例如文本文件:

    Speak friend and enter

使用Perl脚本删除空格并用回车符替换

    Speak
    friend 
    and
    enter

5 个答案:

答案 0 :(得分:21)

perl -p -e 's/\s+/\n/g'

答案 1 :(得分:3)

创建一个文件test.pl:

open my $hfile, $ARGV[0] or die "Can't open $ARGV[0] for reading: $!";
while( my $line = <$hfile> )
{
    $line =~ s/\s+/\n/g;
    print $line;
}
close $hfile;

然后运行它:

perl test.pl yourfile.txt

或者,如果您不想使用文件,可以从命令行执行以下操作:

perl -p -e "s/\s+/\n/g" yourfile.txt

答案 2 :(得分:1)

您可以使用sed

sed -e "s/[ ]/\n/g"

或任何与正则表达式一起使用的东西

"s/[ ]/\n/g"

答案 3 :(得分:1)

如果您想进行就地编辑,可以使用-i开关。查看perlrun以了解它是如何完成的,但基本上是:

perl -p -i.bak -e 's/\s+/\n/g'

答案 4 :(得分:1)

#!/usr/bin/perl -l

use strict;
use warnings;

print join "\n", split while <>;