手机看片精品高清国产日韩,色先锋资源综合网,国产哺乳奶水91在线播放,乱伦小说亚洲色图欧洲电影

幫助中心 >  技術(shù)知識庫 >  云服務(wù)器 >  服務(wù)器教程 >  awk命令行結(jié)構(gòu)和語法結(jié)構(gòu)

awk命令行結(jié)構(gòu)和語法結(jié)構(gòu)

2024-12-31 17:09:59 3635

awk命令行結(jié)構(gòu)和語法結(jié)構(gòu)

awk命令行結(jié)構(gòu)

awk [ -- ] program-text file ...
# program-text即awk命令行中的awk代碼部分,一般使用單引號包圍
awk -f program-file [ -- ] file ...
# -f program-file表示將awk代碼部分寫在文件中,然后使用-f選項去引用這個文件
awk -e program-text [ -- ] file ...
# -e program-text也用于指定awk代碼,與第一條語法等價,但是當(dāng)既要引用文件,又要使用awk代碼時,必須同時使用-f和-e
# 即: awk -f file -e 'awk_code' 而不是 awk -f file 'awk_code'

awk語法結(jié)構(gòu)

awk語法結(jié)構(gòu)即awk代碼部分的結(jié)構(gòu)。

awk的語法充斥著pattern{action}的模式,它們稱為awk rule。

# 范例
awk 'BEGIN{n=3} /^[0-9]/$1>5{$1=333;print $1} /Alice/{print "Alice"} END{print "hello"}' a.txt
# 上面示例中,有BEGIN語句塊,有END語句塊,還有2個main代碼塊,兩個main代碼塊都使用了正則表達式作為pattern。

關(guān)于awk的語法:

  • 多個pattern{action}可以直接連接連用

  • action中多個語句如果寫在同一行,則需使用分號分隔

  • pattern部分用于篩選行,action表示在篩選通過后執(zhí)行的操作

  • pattern和action都可以省略

    • 例如:awk '' a.txt

    • 例如:awk '/Alice/{}' a.txt

    • 例如:awk '/Alice/' a.txt等價于awk '/Alice/{print $0}' a.txt

    • 例如:awk '{print $0}' a.txt

    • 省略pattern,等價于對每一行數(shù)據(jù)都執(zhí)行action

    • 省略代碼塊{action},等價于{print},即輸出所有行

    • 省略代碼塊中的action,表示對篩選的行什么都不做

    • pattern{action}任何一部分都可以省略

pattern和action

對于pattern{action}語句結(jié)構(gòu)(都稱之為語句塊),其中的pattern部分可以使用下面列出的模式:

# 特殊pattern
BEGIN
END

# 布爾代碼塊
/regular expression/    # 正則匹配成功與否 /a.*ef/{action}
relational expression   # 即等值比較、大小比較 3>2{action}
pattern && pattern      # 邏輯與 3>2 && 3>1 {action}
pattern || pattern      # 邏輯或 3>2 || 3<1 {action}
! pattern               # 邏輯取反 !/a.*ef/{action}
(pattern)               # 改變優(yōu)先級
pattern ? pattern : pattern  # 三目運算符決定的布爾值

# 范圍pattern,非布爾代碼塊
pattern1, pattern2      # 范圍,pat1打開、pat2關(guān)閉,即flip,flop模式

action部分,可以是任何語句,例如print。

通過本文的介紹,相信讀者對awk命令的基本使用方法和語法結(jié)構(gòu)有了更深入的了解。無論是在數(shù)據(jù)處理、文本過濾還是格式化輸出中,awk都能發(fā)揮出強大的功能。掌握awk的基本用法后,用戶可以更加靈活高效地處理各種文本數(shù)據(jù),從而提高工作效率和編程能力。希望讀者能通過不斷實踐,進一步挖掘awk命令的潛力,提升在實際應(yīng)用中的技巧和方法。

更多技術(shù)分享可以在藍隊云官網(wǎng)檢索。


提交成功!非常感謝您的反饋,我們會繼續(xù)努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進一步的反饋信息:

在文檔使用中是否遇到以下問題: