使用perl指令碼語言處理文字檔案

2021-04-26 18:37:25 字數 1804 閱讀 5479

前段時間,因為工作需要,使用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對於小的程式設計...