Как написать сценарий Perl для преобразования файла в верхний регистр? - PullRequest
2 голосов
/ 29 апреля 2011

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

Ответы [ 4 ]

8 голосов
/ 29 апреля 2011
perl -ne "print uc" < input.txt

-n оборачивает ваш скрипт командной строки (который предоставляется -e) в цикл while. uc возвращает версию переменной по умолчанию $_ для ALL-UPPERCASE, и то, что делает print, ну, вы сами это знаете. ; -)

-p похож на -n, но в дополнение к print. Опять же, действуя на переменную по умолчанию $_.

Чтобы сохранить это в файле скрипта:

#!perl -n
print uc;

Назовите это так:

perl uc.pl < in.txt > out.txt
3 голосов
/ 29 апреля 2011
$ perl -pe '$_= uc($_)' input.txt > output.txt
2 голосов
/ 29 апреля 2011

perl -pe '$ _ = uc ($ _)' input.txt> output.txt

Но тогда вам даже не нужен Perl, если вы используете Linux (или * nix). Некоторые другие способы:

AWK:

awk '{print toupper ($ 0)}' input.txt> output.txt

тр

tr '[: lower:]' '[: upper:]' output.txt

0 голосов
/ 01 мая 2011
$ perl -Tpe " $_ = uc; " --

$ perl -MO=Deparse -Tpe " $_ = uc; " -- a s d f
LINE: while (defined($_ = <ARGV>)) {
    $_ = uc $_;
}
continue {
    die "-p destination: $!\n" unless print $_;
}
-e syntax OK

$ cat myprogram.pl
#!/usr/bin/perl -T --
LINE: while (defined($_ = <ARGV>)) {
    $_ = uc $_;
}
continue {
    die "-p destination: $!\n" unless print $_;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...