前段時間,因為工作需要,使用perl指令碼對乙個txt檔案做了一些處理。
需要處理的txt檔案inputfile.txt結構是:
#col1 col2 col3 col4 col5
1_1 1_2 1_3 1_4 1_5
2_1 2_2 2_3 2_4 2_5
3_1 3_2 3_3 3_4 3_5
4_1 4_2 4_3 4_4 4_5
5_1 5_2 5_3 5_4 5_5
處理之後的txt檔案outfile.txt結構是:
#col1 col2 col3 col4 col5
1_1,1_2,1_3,1_4,1_5
2_1,2_2,2_3,2_4,2_5
3_1,3_2,3_3,3_4,3_5
4_1,4_2,4_3,4_4,4_5
5_1,5_2,5_3,5_4,5_5
這個處理是非常簡單的,很快就解決了問題。為了簡單介紹一下perl指令碼的使用方式,故借用這個例子,對其實現過程做以介紹,希望能起到拋磚引玉的作用。
指令碼的實現**如下所示,其中新增了不少注釋以解釋實現過程。
#$numargs:numargs前面加上「$」表示宣告變數。
$numargs = @argv; #獲取傳遞引數的個數,注意,需要除去這兩個:perl.exe和perl_do.pl
if(numargs != 3)
$inputfile = $argv[0];#第乙個引數:inputfile.txt
@inputfilearray;#定義了乙個陣列
$outputfile = $argv[1];#第二個引數:outfile.txt
$input_cols = $argv[2];#第三個引數:inputfile_cols
mainprocess();#主處理函式
exit(0); #退出整個程式
#該函式是開啟檔案inputfile.txt,將其中內容讀取到陣列inputfilearray中
sub getinputfile()
@inputfilearray = ;#將檔案inputfile.txt中內容讀取到陣列inputfilearray中
return 0;
}sub mainprocess()
if(not open(batfile, ">$batfile"))
$isfirstline = 1;
foreach $input_line(@inputfilearray)#迴圈處理檔案inputfile.txt中的每一行資料
next if($input_file = ~ /^#/);
next if($input_file = ~ /^!/);
next if($input_file = ~ /^$/);
$_ = $input_line;
@input_list = m//w+/g;
$input_size = $input_list;
for($i = 0; $i < $input_cols; $i++)
else
} if(1 == $isfirstline)
else
$list = "";
}system("$batfile");#執行batfile
}上述**應該寫入perl_do.pl。
建立乙個bat檔案,寫入如下資訊:
perl.exe perl_do.pl inputfile.txt outfile.txt 5
注意:執行該bat檔案,必須得有perl.exe,perl56.dll和perl58.dll。
perl指令碼語言學習
來公司的第二個星期便看了一下perl語言,發現掌握一門指令碼語言還是非常有用的。到現在為止已經入職兩個月,用perl指令碼做了這些活 1.修改了公司的乙個爬取網頁源 的指令碼 2.改進了乙個出特徵庫的指令碼,根據svn status的狀態,來優化,將只需要新增的db的資料進行處理。3.編寫了乙個指令...
使用指令碼語言
dim myvar myvar hello world myvar 在這個例子中,option explicit語句強制所有的變數必須專門宣告。dim語句宣告了變數myvar。如果在使用變數前沒有宣告變數,vbscript就會給出執行時錯誤資訊 variable is undefined myvar...
指令碼刪除末尾字元 perl指令碼語言入門
這篇文章的目的是能夠讀懂簡單的perl指令碼 perl,一種功能豐富的計算機程式語言,執行在超過100種計算機平台上,適用廣泛,從大型機到便攜裝置,從快速原型建立到大規模可擴充套件開發。perl不需要編譯器和鏈結器來執行 你要做的只是寫出程式並告訴perl來執行而已。這意味著perl對於小的程式設計...