的Perl:文件中的排序文件出来

问题描述 投票:2回答:2

我需要我的Perl代码帮助。我需要能够在每行一个字一个文件,并以最低的50行读取。我有一个代码,以打印从文件中的每一行,但我怎么把这些项目进行排序,然后放了一个新的文件。

while(<>){
chomp;
print "$_ :is in the file";
}

我在努力弄清楚如何采取一个文件,(我认为<>解析按行文件行)出来把它放到其他文件。

perl sorting
2个回答
7
投票

对于一个功能更强大的方法,作为一衬垫:

perl -e '$, = "\n"; print sort map { chomp; $_ } <>' input.txt > output.txt

prints sortedmapping版本通过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;

6
投票
perl -we 'print sort <>' input.txt > output.txt

分解:

  • 该文件input.txt被打开阅读时,我们使用钻石操作<>
  • <>在列表环境将返回所有行的文件中sort
  • sort字母顺序排列的线条和返回列表print
  • print打印排序列表
  • 壳重定向从perl命令将文件output.txt输出
© www.soinside.com 2019 - 2024. All rights reserved.