|
首先說(shuō)一下題目的含義,所謂小動(dòng)作,就是指處理一些簡(jiǎn)單的問(wèn)題。但是問(wèn)題雖簡(jiǎn)單,但可能沒(méi)有可用常見(jiàn)的Linux命令或者一些高級(jí)的復(fù)雜的Linux命令沒(méi)有掌握(如awk,sed),導(dǎo)致不得不大動(dòng)手腳,打開(kāi)編輯器,開(kāi)始寫(xiě)代碼解決此問(wèn)題。這就有點(diǎn)雷大雨小的感覺(jué)了。 那么怎么快速簡(jiǎn)單的解決這些小動(dòng)作呢?其實(shí)還是離不了命令行,只不過(guò)這里是perl的命令行。習(xí)慣寫(xiě)perl的人,對(duì)perl的語(yǔ)言可能了解更多,學(xué)會(huì)了命令行,以后恐怕復(fù)雜的Linux命令可能就不用再去學(xué)習(xí)了。廢話(huà)不多說(shuō),看看規(guī)則吧: Perl命令行參數(shù)執(zhí)行控制 -e 可以讓Perl程序在Perl命令行上運(yùn)行. -M 導(dǎo)入模塊 -I 指定目錄以搜索標(biāo)準(zhǔn)位置前的模塊 -w 打開(kāi)警告 -Mstrict 打開(kāi)嚴(yán)格編譯指示(pragma) -a 將數(shù)據(jù)分割成名為 @F 的數(shù)組,.空格是缺省的分隔符 -F 指定分割時(shí)把缺省的分隔符改為你想要的。例如把分離號(hào)定為非字符使用\W -i 在適當(dāng)?shù)奈恢镁庉嬑募?/span> -c 進(jìn)行perl的語(yǔ)法檢查,但不執(zhí)行perl命令 -l 使用-l有兩個(gè)效果,第一自動(dòng)chomp輸入分隔號(hào),第二把$/值付給$\(這樣print的時(shí)候就會(huì)自動(dòng)在末尾加\n) -n 使用<>將所有@ARGV參數(shù)當(dāng)作文件來(lái)逐行遍歷運(yùn)行,每一行將缺省保存在$_。相當(dāng)于 while(<>;){ } -p 使 Perl 隱式地循環(huán)遍歷指定的文件,同時(shí)打印所有的行。自動(dòng)循環(huán)+自動(dòng)輸出,相當(dāng)于 while(<>) { 腳本; print; } -C 這個(gè)參數(shù)編譯Perl程序但不會(huì)真正運(yùn)行它.由此檢查所有語(yǔ)法錯(cuò)誤.每次修改perl程序之后我都會(huì)立刻使用它來(lái)找到任何語(yǔ)法錯(cuò)誤. -W 它會(huì)提示你任何潛在的問(wèn)題.Perl5.6.0之后的版本已經(jīng)用usewarnings;替換了-w.你應(yīng)該使用usewarnings因?yàn)樗?/span>-w更靈活. -M 可以象通常一樣引用模塊 $perl-MLWP::Simple-e'getstore('http://www.163.com/','163.html')'##下載整個(gè)網(wǎng)頁(yè) -M+模塊名和use模塊名一樣
以下是一些常用的簡(jiǎn)單實(shí)例#perl -pi–e ’s/aaa/bbb/’ filename 將文件中aaa替換成bbb,不生成中間文件。記住-i開(kāi)關(guān)為原地編輯文件。 #perl -ne‘print if /^aaaaa/’ filename 輸出首行開(kāi)始是aaaaa的行,執(zhí)行的是grep的功能。使用了-n,所以按行操作,直到整個(gè)文件讀完。 # perl-lane 'print $F[0] + $F[-2]' 將每行的第一個(gè)元素和倒數(shù)第二個(gè)元素和輸出;使用-a后,因?yàn)?/span>-n分行讀進(jìn)來(lái),然后-a給數(shù)據(jù)分割存儲(chǔ)到@F數(shù)組。 #perl -ne‘print if /^START$/ .. /^END$/’ 打印正則中從$start到$end的地方 顯示15行到17行 #perl -ne‘print scalar reverse $_’ test 給文件中的內(nèi)容反向排序,比如文件中有fukai,就會(huì)變成iakuf perl-lne'printsubstr($_,0,80)='''file 每行取前80個(gè)字符: 每行丟棄前10個(gè)字符 使用命令行操作FASTA序列的高級(jí)操作見(jiàn): 整理自: [Perl命令行參數(shù): https://wk.b [Perl命令行應(yīng)用程序詳解_腳本之家: http://m.jb5 [perl 命令行: http://blog. |
|
|