如何编写Perl脚本将文本文件转换为所有大写字母?
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
$ perl -pe '$_= uc($_)' input.txt > output.txt
perl pe ' $ _ =加州大学($ _)input.txt> output.txt
但是如果你使用的是Linux(或*nix),你甚至不需要Perl。
awk:
awk '{print toupper($0)}' input.txt>output.txt
tr:
tr '[:lower:]' ' '[:upper:]'
output.txt
$ 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 $_;
}