作者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
推 clkao:perl -ln0e 'print $_ for sort split /\s+/' 02/12 05:52
→ Chris7462:謝謝謝謝 02/12 12:40