引用:
作者: 飛鳥
#!/usr/bin/perl
print "請輸入要分析英文單字出現的頻率:";
my $line=<>; #從標準輸入,放入變數$line
print "\n";
chomp $line; #去除輸入最後的換行字元
$line=~s/\,/ /g; #符號整理
$line=~s/\./ /g; #符號整理
$line=~s/\!/ /g; #符號整理
$line=~s/\?/ /g; #符號整理
$line=~s/\;/ /g; #符號整理
$line=~s/\:/ /g; #符號整理
$line=~s/\"/ /g; #符號整理
$line=~s/\'/ /g; #符號整理
$line=~s/ / /g; #整理多餘空白鍵
$line=~s/ / /g; #整理多餘空白鍵
my @arrr;
@arrr=split(/ / , $line); #把文章,以空白鍵作分開單字的關鍵,放入陣列中
my @repeat;
for (my $i=0;$arrr[$i];$i++){
for (my $j=0;$arrr[$j];$j++){
$repeat[$i][0] = $arrr[$i];
$repeat[$i][1] = $repeat[$i][1] + 1 if ($arrr[$i] eq $arrr[$j]); #比對單字,出現一次寫入$repeat二維陣列中
}
}
#print出所有單字出現的次數
for (my $i=0;$arrr[$i];$i++){
print "$arrr[$i] 出現了 $repeat[$i][1] 次\n";
}
$line=<>;
|
Perl 不愧是用來處理字串專用的程式語言,能夠在這麼短短的幾行就解決確實名不虛傳
阿鳥老大 BASH 熟嗎?BASH 熟的話在處理很多東西會很方便喔~ ^_^
例如這題用 BASH 來解,只要...... 一行
引用:
cat "文章內容"|tr A-Z a-z|tr -c [^a-z] '\n'|grep -v ^$|sort|uniq -c|sort -k1,1nr|head -n 3
|
輸出結果:
引用:
11 the
5 ford
5 president
|
第二題會比較刺激喔~~~
期待 Perl 的精彩演出~
====
可能有人覺得第一道題目很沒意義,我換個方式說大伙就知道這個可以用來做什麼。
題目:
請在 /var/log/secure LOG檔中找出嘗試入侵主機超過10次的IP,並在Firewall中封鎖該IP。
大伙是不是也漸漸感受到 BASH 的魔力 ^^?