這篇文章主要介紹linux shell awk如何獲得外部變量,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
在武陟等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、成都網(wǎng)站建設(shè)、成都外貿(mào)網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作定制網(wǎng)站開(kāi)發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),成都全網(wǎng)營(yíng)銷,外貿(mào)網(wǎng)站建設(shè),武陟網(wǎng)站建設(shè)費(fèi)用合理。AWK 提供了極其強(qiáng)大的功能:
可以進(jìn)行正則表達(dá)式的匹配
樣式裝入
流控制
數(shù)學(xué)運(yùn)算符
進(jìn)程控制語(yǔ)句
內(nèi)置的變量和函數(shù)
可以把a(bǔ)wk看作一門完全的程序設(shè)計(jì)語(yǔ)言,它處理文本的速度是快得驚人的?,F(xiàn)在很多基于shell 日志分析工具都可以用它完成。設(shè)計(jì)簡(jiǎn)單,速度表現(xiàn)很好。 涉及到以上六個(gè)方面內(nèi)容,我會(huì)在以后文章中加以介紹。 這次主要說(shuō)下,怎么樣把外部變量傳入到awk執(zhí)行語(yǔ)句中。
一、基礎(chǔ):
awk [ -F re] [parameter...] ['pattern {action}' ] [-f progfile][in_file...]
awk一般語(yǔ)法如上面所說(shuō)。
如:
代碼如下:
[chengmo@localhost ~]$ echo 'awk code' | awk 'BEGIN{print "start\n============="}{print $0}END{print "=========\nend"}'
start
=============
awk code
=========
end
在 awk中兩個(gè)特別的表達(dá)式,BEGIN和END,這兩者都可用于pattern中(參考前面的awk語(yǔ)法),提供BEGIN和END的作用是給程序賦予初始狀態(tài)和在程序結(jié)束之后執(zhí)行一些掃尾的工作。任何在BEGIN之后列出的操作(在{}內(nèi))將在awk開(kāi)始掃描輸入之前執(zhí)行,而END之后列出的操作將在掃描完全部的輸入之后執(zhí)行。因此,通常使用BEGIN來(lái)顯示變量和預(yù)置(初始化)變量,使用END來(lái)輸出最終結(jié)果。
二、獲得外部變量方法
1、獲得普通外部變量
代碼如下:
[chengmo@localhost ~]$ test='awk code'
[chengmo@localhost ~]$ echo | awk '{print test}' test="$test"
awk code
[chengmo@localhost ~]$ echo | awk test="$test" '{print test}'
awk: cmd. line:1: fatal: cannot open file `{print test}' for reading (No such file or directory)
格式如:awk ‘{action}' 變量名=變量值 ,這樣傳入變量,可以在action中獲得值。 注意:變量名與值放到'{action}'后面。
[chengmo@localhost ~]$ echo | awk 'BEGIN{print test}' test="$test"
這種變量在:BEGIN的action不能獲得。
2.BEGIN程序塊中變量
代碼如下:
[chengmo@localhost ~]$ test='awk code'
[chengmo@localhost ~]$ echo | awk -v test="$test" 'BEGIN{print test}'
awk code
[chengmo@localhost ~]$ echo | awk -v test="$test" '{print test}'
awk code
格式如:awk –v 變量名=變量值 [–v 變量2=值2 …] 'BEGIN{action}' 注意:用-v 傳入變量可以在3中類型的action 中都可以獲得到,但順序在 action前面。
3.獲得環(huán)境變量
代碼如下:
[chengmo@localhost ~]$ awk 'BEGIN{for (i in ENVIRON) {print i"="ENVIRON[i];}}'
AWKPATH=.:/usr/share/awk
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
SELINUX_LEVEL_REQUESTED=
SELINUX_ROLE_REQUESTED=
LANG=en_US.UTF-8
.......
只需要調(diào)用:awk內(nèi)置變量 ENVIRON,就可以直接獲得環(huán)境變量。它是一個(gè)字典數(shù)組。環(huán)境變量名 就是它的鍵值。
以上是“l(fā)inux shell awk如何獲得外部變量”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!