對應腳本運用:
1. shell 統籌管理 腳本的運行。合理結合 crontab , ps -ef ,kill 等命令。
2. perl 處理短小快 。
3. python 有比較復雜結構和邏輯的。
本文主要介紹 perl 的行級命令使用 ,力求 短 小 快












# if($_=~/.*\/(.*)$/){ print $1 ;} 這是perl 巨方便的地方 $1 xx















實際處理:
perl -F'\|\|' -ane '
my $actor,$music ;
if ( $F[3] ){
$music=$F[2];
$actor=$F[3];
}else{
$music=$F[0];
$actor=$F[1];
}
$music =~ tr/[A-Z]/[a-z]/;
$music =~ s/\s*(.*)\s*\(.*\)/\1/g;
$actor =~ tr/[A-Z]/[a-z]/;
$actor =~ s/\s*(.*)\s*\(.*\)/\1/g;
print "$actor-$music\n";
' ring.utf8.txt |sort -u > ring.actor_music.sort.utf8.txt &
wc -l ring.actor_music.sort.utf8.txt
my $actor,$music ;
if ( $F[3] ){
$music=$F[2];
$actor=$F[3];
}else{
$music=$F[0];
$actor=$F[1];
}
$music =~ tr/[A-Z]/[a-z]/;
$music =~ s/\s*(.*)\s*\(.*\)/\1/g;
$actor =~ tr/[A-Z]/[a-z]/;
$actor =~ s/\s*(.*)\s*\(.*\)/\1/g;
print "$actor-$music\n";
' ring.utf8.txt |sort -u > ring.actor_music.sort.utf8.txt &
wc -l ring.actor_music.sort.utf8.txt

# -i 和 sed 一樣 perl 輸出會替換調 源 file.txt



#結果 .. par1 par2 ..
# 查詢出 重復列 次數,并 列舉出來
cut -d" " -f 2 .collection_mobile.data |perl -ne '
END{
while (($key,$value)=each(%a)){print $key,"=",$value,"\n";};
}BEGIN{ %a =(); }
chomp;
$a{$_}+=1;
'
結果cut -d" " -f 2 .collection_mobile.data |perl -ne '
END{
while (($key,$value)=each(%a)){print $key,"=",$value,"\n";};
}BEGIN{ %a =(); }
chomp;
$a{$_}+=1;
'
Ring=532895
CRBT=68500
RingBoxes=880
Song=96765


perl -F'\t' -ane 'if($F[1]=~/$ARGV[0]/ and $F[2]=~/$ARGV[1]/){print "$F[3]\t$F[4]\t$F[5]\n"}' all2_data.sort.st '侃侃' '愛情啊'
#與 find 合用 -e $ARGV[0] 批量 把 excel 倒成 文本 格式
find . -maxdepth 1 -name "*xls" -exec perl -e '
find . -maxdepth 1 -name "*xls" -exec perl -e '
require("/home/xj_liukaiyi/src/perl/excel/excelUtil.pl");
my $file=$ARGV[0];
sub myRead{
my $str = "";
for $tmp(@_){
$str="$str$tmp\t";
}
$str="$str\n";
system "echo \"$str\" >> $file.data ";
}
&parse_excel("$file",0,\&myRead);
print "$file\n";
' {} \;my $file=$ARGV[0];
sub myRead{
my $str = "";
for $tmp(@_){
$str="$str$tmp\t";
}
$str="$str\n";
system "echo \"$str\" >> $file.data ";
}
&parse_excel("$file",0,\&myRead);
print "$file\n";
參考:
http://www.ibm.com/developerworks/cn/linux/sdk/perl/l-p101/index.html
http://bbs.chinaunix.net/viewthread.php?tid=499434
整理 www.aygfsteel.com/Good-Game