作者Chris7462 (~烤焦面包~)
看板Perl
标题[问题] 文字档案处理
时间Tue Feb 12 05:06:15 2008
我有一个文字档 (data.txt),文字格式如下:(里面包含了多余的空白,换行字元等)
abandon babble cabal dabble earnest fabric gadfly habitat icicle
jabber kaleidoscope labile macabre nadir oafishness pacifist quack
rabble sabotage table ubiquitous vaccinate waddle xenophobe
yacht zealotry
aberrant bacterium cadet dally earthly facile gait halcyon idiom
jar kidnap lachrymose maelstrom narcotic obedient padding qualms
radius sacrilege tackle umpire vagrancy waggish yielding zone
我想将上面的资料做排序,并且输出到另外一个档案 (sorted.txt)
结果如下:
abandon
aberrant
babble
bacterium
cabal
...
我把他拆成两之程式来处理,第一个程式 chomp.pl 来处理多余的空白与换行等,
my $filename = "data";
open IN, "< $filename.txt";
open OUT, "> $filename.new.txt";
while (<IN>){
s/\s+/ /g;
s/^\s+//g;
print OUT;
}
close OUT;
close IN;
第二个程式 sort.pl 用来处理资料的排序
#!/usr/bin/perl -w
use strict;
my $file = <>;
chomp($file);
@_ = split(/ /, $file);
foreach ( sort @_ ){
print "$_\n";
}
我想请问有没有比较聪明的办法一次把这两件事情做完?谢谢。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.228.78.70
1F:推 clkao:perl -ln0e 'print $_ for sort split /\s+/' 02/12 05:52
2F:→ Chris7462:谢谢谢谢 02/12 12:40