我的perl代码需要帮助.我需要能够在每行中读取一个单词且至少50行的文件.我有一个代码来打印文件中的每一行,但我如何对这些项进行排序然后将它们放到一个新文件中.
while(<>){
chomp;
print "$_ :is in the file";
}
Run Code Online (Sandbox Code Playgroud)
我正在努力弄清楚如何接收文件和(我认为<>逐行解析文件)将其放入另一个文件.
对于更具功能性的方法,作为单线程:
perl -e '$, = "\n"; print sort map { chomp; $_ } <>' input.txt > output.txt
Run Code Online (Sandbox Code Playgroud)
此printš一个sort编辑的版本map平每线通过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;
Run Code Online (Sandbox Code Playgroud)
perl -we 'print sort <>' input.txt > output.txt
Run Code Online (Sandbox Code Playgroud)
分解:
input.txt当我们使用钻石操作符时,打开文件进行读取
<><> 在列表上下文中返回文件中的所有行 sortsort 按字母顺序对行进行排序并将列表返回到 printprint 打印排序列表perl命令的输出重定向到文件
output.txt