我的perl代码需要帮助。我需要能够在每行中读取一个单词且至少50行的文件。我有一个代码来打印文件中的每一行,但是我如何对这些项进行排序然后将它们放到一个新文件中。
while(<>){
chomp;
print "$_ :is in the file";
}
我正在努力弄清楚如何接收文件和(我认为&lt;&gt;逐行解析文件)把它放到另一个文件中。
答案 0 :(得分:7)
对于更具功能性的方法,作为单线:
perl -e '$, = "\n"; print sort map { chomp; $_ } <>' input.txt > output.txt
此print
s sort
ed版本的map
ping每行chomp
,以换行符分隔($,
。
作为写入预定文件的独立脚本:
#!/usr/bin/env perl -w
$, = "\n";
open(my $output, ">", "output.txt")
or die "Cannot open output.txt: $!\n";
print $output sort map { chomp; $_ } <>;
close $output;
答案 1 :(得分:6)
perl -we 'print sort <>' input.txt > output.txt
故障:
input.txt
会被打开以供阅读
<>
<>
会将文件中的所有行返回到sort
sort
按字母顺序对行进行排序,并将列表返回print
print
打印已排序的列表perl
命令的输出重定向到文件
output.txt