佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > linux shell awk獲得外部變量(變量傳值)簡介

linux shell awk獲得外部變量(變量傳值)簡介

熱門標(biāo)簽:AI電銷 地方門戶網(wǎng)站 呼叫中心市場需求 百度競價(jià)排名 鐵路電話系統(tǒng) Linux服務(wù)器 網(wǎng)站排名優(yōu)化 服務(wù)外包
AWK 提供了極其強(qiáng)大的功能:
  1. 可以進(jìn)行正則表達(dá)式的匹配
  2. 樣式裝入
  3. 流控制
  4. 數(shù)學(xué)運(yùn)算符
  5. 進(jìn)程控制語句
  6. 內(nèi)置的變量和函數(shù)

可以把a(bǔ)wk看作一門完全的程序設(shè)計(jì)語言,它處理文本的速度是快得驚人的?,F(xiàn)在很多基于shell 日志分析工具都可以用它完成。設(shè)計(jì)簡單,速度表現(xiàn)很好。 涉及到以上六個(gè)方面內(nèi)容,我會(huì)在以后文章中加以介紹。 這次主要說下,怎么樣把外部變量傳入到awk執(zhí)行語句中。

一、基礎(chǔ):

awk [ -F re] [parameter...] ['pattern {action}' ] [-f progfile][in_file...]

awk一般語法如上面所說。

如:

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

[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語法),提供BEGIN和END的作用是給程序賦予初始狀態(tài)和在程序結(jié)束之后執(zhí)行一些掃尾的工作。任何在BEGIN之后列出的操作(在{}內(nèi))將在awk開始掃描輸入之前執(zhí)行,而END之后列出的操作將在掃描完全部的輸入之后執(zhí)行。因此,通常使用BEGIN來顯示變量和預(yù)置(初始化)變量,使用END來輸出最終結(jié)果。

二、獲得外部變量方法

1、獲得普通外部變量

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

[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程序塊中變量

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

[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)境變量

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

[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)境變量名 就是它的鍵值。

您可能感興趣的文章:
  • Linux里awk中split函數(shù)的用法小結(jié)
  • linux正則表達(dá)式awk詳解
  • 一天一個(gè)shell命令 linux文本內(nèi)容操作系列-awk命令詳解
  • Linux中 sed 和 awk的用法詳解
  • linux awk時(shí)間計(jì)算腳本及awk命令詳解
  • linux之a(chǎn)wk命令的用法
  • linux awk高級應(yīng)用實(shí)例
  • Linux awk將文件某列按照逗號分隔的例子
  • Linux中awk的使用方法詳解

標(biāo)簽:黃山 蘭州 銅川 衡水 湘潭 湖南 仙桃 崇左

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《linux shell awk獲得外部變量(變量傳值)簡介》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    日喀则市| 临沂市| 赤壁市| 佳木斯市| 资兴市| 林甸县| 五大连池市| 广宗县| 廉江市| 淮阳县| 福泉市| 饶平县| 镶黄旗| 建始县| 宣武区| 洛扎县| 化州市| 阜南县| 叶城县| 克山县| 女性| 武夷山市| 化州市| 兴义市| 开封市| 吴忠市| 兴国县| 阿克苏市| 建宁县| 延安市| 彰武县| 珲春市| 池州市| 乌兰浩特市| 元谋县| 大安市| 盐池县| 昭苏县| 凤阳县| 毕节市| 灵丘县|