Используя Perl, как я могу заменить все пробелы в файле новыми строками?


Например текстовый файл:

    Speak friend and enter

Использование скрипта Perl для удаления пробелов и замены на возврат каретки

    Speak
    friend 
    and
    enter
5 2

5 ответов:

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

Создание файла 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
#!/usr/bin/perl -l

use strict;
use warnings;

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

Вы можете использовать sed

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

Или все, что работает с регулярными выражениями

"s/[ ]/\n/g"

Если вы хотите редактировать inplace, вы можете использовать переключатель-i. Проверьте perlrun, чтобы увидеть, как это делается, но, в основном:

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