Как я могу написать сценарий Perl для преобразования текстового файла во все буквы верхнего регистра?
Как написать Perl-скрипт для преобразования файла во все прописные буквы?
Ответы (3)
perl -ne "print uc" < input.txt
-n
заключает ваш сценарий командной строки (который предоставляется -e
) в цикл while
. uc
возвращает ЗАГЛАВНУЮ версию переменной по умолчанию $_
, а что делает print
, вы сами знаете. ;-)
-p
похож на -n
, но вдобавок он выполняет print
. Опять же, воздействуя на переменную по умолчанию $_
.
Чтобы сохранить это в файле сценария:
#!perl -n
print uc;
Назовите это так:
perl uc.pl < in.txt > out.txt
person
Lumi
schedule
29.04.2011
добавьте
-C
для файлов utf-8, например, echo aßbc | perl -C -ne'print uc'
-> ASSBC
.
- person jfs; 29.04.2011
Спасибо, Майкл! Это сработало для меня. Информация была полезной, и я изменил ее для вывода в файл, что было просто. Для других новичков вы должны поместить каталог и имя файла в двойные кавычки, если он не находится в текущем каталоге.
- person salvationishere; 29.04.2011
Еще один дополнительный вопрос... Как я могу написать это и сохранить в файле Perl? Так что я просто даю аргументы входного файла и выходного файла?
- person salvationishere; 29.04.2011
#!perl -n print uc; В две строки! Затем назовите его так: perl uc.pl ‹ in.txt › out.txt
- person Lumi; 29.04.2011
Я пробовал это, но это ничего не сделало. Как добавить информацию о вводе/выводе в командную строку при запуске этого Perl-скрипта? Кроме того, этот скрипт выглядит недостаточно длинным
- person salvationishere; 29.04.2011
perl -pe '$_ = uc($_)' input.txt > output.txt
Но тогда вам даже не нужен Perl, если вы используете Linux (или *nix). Некоторые другие способы:
авк:
awk '{напечатать верхнюю часть ($0)}' input.txt > output.txt
tr:
tr '[:lower:]' '[:upper:]' ‹ input.txt > output.txt
person
Akhthar Parvez
schedule
29.04.2011
Спасибо за информацию. Хотя я не пользуюсь линуксом.
- person salvationishere; 29.04.2011
Хорошо, нп. Несмотря на то, что Perl очень полезен для пользователей Linux, я всегда думал, что он больше подходит для пользователей Windows; просто из-за того, что Linux настолько богат инструментами, что одну задачу можно выполнить с помощью многих его стандартных утилит.
- person Akhthar Parvez; 29.04.2011
person
schedule
Спасибо, Мэтью. Я попробовал это, но я немного изменил его с информацией о каталоге. Однако это дает мне ошибку: не удается найти терминатор строки ' нигде до EOF в -e строке 1
- person salvationishere; 29.04.2011