最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Perl一句話命令行編程中常用參數(shù)總結(jié)

 更新時(shí)間:2014年09月17日 10:03:59   作者:鄉(xiāng)村運(yùn)維  
這篇文章主要介紹了Perl一句話命令行編程中常用參數(shù)總結(jié),本文總結(jié)了如-e、-E、-M、-m等參數(shù),并講解了它們的作用及用法,需要的朋友可以參考下

工作中的線上環(huán)境有很多的perl命令行的類似一句話的命令,今天總結(jié)下perl的命令行編程的一些東西。

-e 后面緊跟著引號里面的字符串是要執(zhí)行的命令:

復(fù)制代碼 代碼如下:

king@king:~$ perl -e ‘print “hello world \n”‘
hello world

如果是多個(gè)命令就可以使用多個(gè)-e,這里是不是想到了sed呢?但是要注意的是中間的哪個(gè)“;”.
復(fù)制代碼 代碼如下:

king@king:~$ perl -e ‘print “hello world \n” ;' -e ‘print “my first perl command line script \n”‘
hello world
my first perl command line script

-M 導(dǎo)入要使用的模塊:

復(fù)制代碼 代碼如下:

king@king:~$ perl -MLWP::Simple -e'print head “http://www.chinacache.com”,”\n”‘
text/html; charset=utf-81337525116978307200Apache/2.2.3 (CentOS)

另外-M可以判斷某個(gè)模塊是不是已經(jīng)安裝了

-m 的功能和-M類似,區(qū)別在于-M 模塊名等同于use 模塊名,這樣會把一些默認(rèn)的函數(shù)或者其它東西引進(jìn)過來,-m 模塊名 則會關(guān)閉這些默認(rèn)值,這樣可以引入一些你只使用的函數(shù);例如上面的例子:

換成-m的話就不會有任何輸出;-m 和 -M 通過 = 來引入某個(gè)模塊的特別函數(shù).

復(fù)制代碼 代碼如下:

perl -MCGI='header,start_html' -e ‘print header, start_html'

-w 等同于use warnings
-n -p 都會使用 <> 將所有 @ARGV 參數(shù)當(dāng)作文件來逐行運(yùn)行(有循環(huán)的意思哦,經(jīng)常和其它參數(shù)一起處理文件),會將讀入的內(nèi)容隱式的逐一按行來遍歷文件.每一行將缺省保存在 $_;但-p 會將內(nèi)容“重復(fù)”打印出來,而-n更傾向與打印滿足某種條件的行(這這里還有一些有用的變量比如$. 表示當(dāng)前行的行數(shù)):
復(fù)制代碼 代碼如下:

king@king:~$ cat file.txt
A 1
B 2
C 3
king@king:~$ perl -p -e ‘print ‘ file.txt
A 1
A 1
B 2
B 2
C 3
C 3
king@king:~$ perl -n -e ‘print ‘ file.txt
A 1
B 2
C 3

看到這里是不是想到了sed的-n 的特性:
復(fù)制代碼 代碼如下:

king@king:~$ sed -ne ‘p' file.txt
A 1
B 2
C 3
king@king:~$ sed -e ‘p' file.txt
A 1
A 1
B 2
B 2
C 3
C 3

-i 將修改直接的寫入文件,這個(gè)和sed也是一樣的哦;
復(fù)制代碼 代碼如下:

king@king:~$ cat file.txt
A 1
B 2
C 3
king@king:~$ perl -pi -e ‘s/A/a/' file.txt
king@king:~$ cat file.txt
a 1
B 2
C 3

-a 打開自動(dòng)分離 (split)  模式. 空格是缺省的分離號. 輸入根據(jù)分離號被分離然后放入缺省數(shù)組 @F.
復(fù)制代碼 代碼如下:

king@king:~$ perl -na -e ‘print $F[1],”\n”‘ file.txt
1
2
3

和awk是不是很像?還有更像的,那就是-F,和awk一樣更改字段之間的分割符,默認(rèn)是空格和tab;
復(fù)制代碼 代碼如下:

king@king:~$ perl -F':' -alne ‘print $F[0],” “,$F[-1] if /bash$/' /etc/passwd
root /bin/bash
king /bin/bash
guest-b0SIey /bin/bash

看到上面的那個(gè)-l的參數(shù)沒?它的最主要的作用就是chomp字段和在每個(gè)輸出的后面加上“\n”,讓輸出換行;是不是挺有用的呢?

有沒有其它和awk有類似的地方呢?答案是肯定的,

BEGIN{},END{} 是不是也很熟悉呢?

以下是一些常用的簡單實(shí)例

#perl -pi -e's/aaa/bbb/' filename 修改當(dāng)前file文件中的文件,不生成中間文件,速度很快.記住 -i 開關(guān),因?yàn)樗屇阍鼐庉嬑募?

#perl -ne ‘print if /^aaaaa/' filename 象grep一樣過濾文件中需要的內(nèi)容.這個(gè)地方,使用了-n,所以一次是做一行的操作,直到整個(gè)文件讀完.另外,在管道時(shí),-n也會一樣,來遍歷管道送過來的內(nèi)容.

#perl -n -e ‘print “$. – $_”‘ filename 這個(gè)例子中的,沒用-ne,只是命令寫成了-n -e,其實(shí)一樣,這個(gè)例子中,是給當(dāng)前文件中的內(nèi)容都加一個(gè)行號打印出來.注:$.表示當(dāng)前行號

#perl -pe ‘$_ = “$. $_”‘ filename 這個(gè)其實(shí)和上面一樣,分別只是使用了-p替換了-n,這個(gè)有個(gè)什么好處啦,別的地方都一樣,但-p按行來遍歷完文件后,會給$_打印出來.

大家還記得awk分割域(awk ‘{i = NF – 1; print $1 + $i}')啊,是不是很方便,下面我們來看看perl

復(fù)制代碼 代碼如下:

#perl -lane ‘print $F[0] + $F[-2]‘ 這個(gè)神奇的地方在于-a,使用-a后.因?yàn)?n分行讀進(jìn)來,然后-a給數(shù)據(jù)分割成@F的數(shù)組.
#perl -ne ‘print if /^START$/ .. /^END$/' 打印正則中從$start到$end的地方
#perl -ne ‘print if $. >= 15; exit if $. >= 17;' 有效地打印數(shù)字范圍中的行
#perl -p -i.bak -e ‘s/\bfoo\b/bar/g' *.c 原地修改 -i 開關(guān)的神奇之處在于它對 @ARGV 中的每個(gè)文件都用該腳本對該文件輸出所產(chǎn)生的文件版本進(jìn)行替代
#perl -ne ‘print scalar reverse $_' test 給文件中的內(nèi)容反向排序,比如文件中有abc,就會變成cba

相關(guān)文章

  • perl 中的or與||的區(qū)別

    perl 中的or與||的區(qū)別

    or比||優(yōu)先級低,除此之外,兩者無區(qū)別
    2013-02-02
  • perl 文件操作總結(jié)

    perl 文件操作總結(jié)

    perl 文件操作總結(jié),需要的朋友可以參考下
    2013-02-02
  • perl中heredoc使用說明

    perl中heredoc使用說明

    在成塊打印文本的時(shí)候特別有用,需要的朋友可以參考下
    2013-02-02
  • perl 模塊打包加入外部依賴程序

    perl 模塊打包加入外部依賴程序

    Perl 社區(qū)并不是所有的東西都發(fā)布在 CPAN 上。甚至專門有一個(gè) Module::ThirdParty 模塊記錄這些非 CPAN 的 perl 項(xiàng)目列表。其中最有名的應(yīng)該就屬寫博客的 Movable Type 和做監(jiān)控的 SmokePing 了
    2013-02-02
  • perl處理json的序列化和反序列化

    perl處理json的序列化和反序列化

    perl可以使用JSON模塊很方便的處理json的序列化和反序列化,本文通過一個(gè)簡單例子給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2023-12-12
  • python批量下載壁紙的實(shí)現(xiàn)代碼

    python批量下載壁紙的實(shí)現(xiàn)代碼

    壁紙來自桌酷網(wǎng)站,所有權(quán)歸屬其網(wǎng)站,本代碼僅做為交流學(xué)習(xí)使用,請勿用于商業(yè)用途,否則后果自負(fù)
    2012-08-08
  • Perl進(jìn)行錯(cuò)誤處理和創(chuàng)建子程序的示例

    Perl進(jìn)行錯(cuò)誤處理和創(chuàng)建子程序的示例

    這篇文章主要介紹了Perl進(jìn)行錯(cuò)誤處理和創(chuàng)建子程序的示例,Perl允許開發(fā)者編寫健壯的代碼,能夠優(yōu)雅地處理運(yùn)行時(shí)錯(cuò)誤和異常情況,需要的朋友可以參考下
    2024-06-06
  • perl的POD權(quán)限問題處理

    perl的POD權(quán)限問題處理

    今天我們繼續(xù)查找mod_perl對req_header的處理,有需要的朋友建議參考學(xué)習(xí)之
    2013-02-02
  • Perl中使用MIME::Lite發(fā)送郵件實(shí)例

    Perl中使用MIME::Lite發(fā)送郵件實(shí)例

    這篇文章主要介紹了Perl中使用MIME::Lite發(fā)送郵件實(shí)例,本文介紹了使用sendmail方式發(fā)送、發(fā)送HTML格式郵件、smtp方式發(fā)送郵件等內(nèi)容,需要的朋友可以參考下
    2014-09-09
  • perl查找進(jìn)程PID的例子

    perl查找進(jìn)程PID的例子

    這篇文章主要介紹了perl查找進(jìn)程PID的例子,例子中主要通過/proc目錄進(jìn)行PID的查找,需要的朋友可以參考下
    2014-06-06

最新評論

大悟县| 山东省| 镇远县| 彭山县| 大同市| 靖江市| 屯留县| 招远市| 洛扎县| 泾川县| 英德市| 澜沧| 湟中县| 葫芦岛市| 登封市| 襄汾县| 龙川县| 崇明县| 望谟县| 正蓝旗| 东安县| 城固县| 淮南市| 东安县| 山阳县| 桐庐县| 大连市| 杭州市| 望江县| 东平县| 房产| 张家界市| 股票| 孟连| 蒙阴县| 阿荣旗| 洛南县| 徐水县| 衡水市| 柳林县| 孟村|