欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

awk正則表達式和內(nèi)置函數(shù)的使用方法實例詳解

 更新時間:2014年12月01日 09:30:01   投稿:junjie  
這篇文章主要介紹了awk正則表達式和內(nèi)置函數(shù)的使用方法實例詳解,本文總結(jié)了15個使用例子,需要的朋友可以參考下

awk正則表達式及內(nèi)置函數(shù)實例詳解:

1、模糊匹配:

復制代碼 代碼如下:

awk ‘{if($3~/97/) print $0}' data.f:如果第三項中含有”97”則打印該行
awk ‘{if($4!~/ufcx/) print $0}' data.f:如果第三項中不含ufcx有則打印

2、精確匹配:

復制代碼 代碼如下:

awk ‘{if($5==66) print $0}' data.f:如果第五項是66則打印
awk ‘{if($5!=66)print $0}' data.f : 如果第五項不是66則打印
awk ‘{if($1>$5) print $0}' data.f:如果第一項大于第五項則打印

3、大小寫匹配:

復制代碼 代碼如下:

awk ‘{if(/[Ss]ept/) print $0}' data.f:符合,則打印一行。
awk ‘/[Ss]ept/ {print $2}' data.f:符合,則打印第二字段

4、任意匹配:

復制代碼 代碼如下:

awk ‘{if($2 ~/^.e/) print $0}' data.f:第二字段中,第二個字符為e,輸出
awk ‘{if($4 ~/(lps|fcx)/) print $0}' data.f:第四個字段含有l(wèi)ps或fcx則輸出

5、&&,||:

復制代碼 代碼如下:

awk ‘{if($3 ~/1993/ && $2==”sept”) print $0}' data.f:兩邊都真則輸出
awk ‘{if($3 ~/a9/ || $2==”sept”) print $0}' data.f:一邊為真則輸出

6、變量定義:

awk ‘{date=$2;price=$5; if(date ~/[Ss]ept/) print “price is ” price}' data.f:變量定義,滿足date是sept或者Sept的將price輸出。

7、修改數(shù)值(源文件數(shù)值不變)

復制代碼 代碼如下:

awk ‘{BASELINE=42; if($1>BASELINE) $5=$5+100; print $0}' data.f:三行程序,以“;”分割

如果修改的是文本域,就要添加“”””。例如:awk ‘{if($2==”may”) $2=”tt”; print $0}' data.f

上邊都是顯示所有數(shù)據(jù),awk ‘{if($2==”may”) {$2=”tt”; print $0}}' data.f這個只顯示修改數(shù)據(jù),仔細看看,其實語法和c一樣,只是最外邊添加了一個{}符號。

8、創(chuàng)建新域:(源文件數(shù)值不變)

復制代碼 代碼如下:

awk ‘{if($5>$1){$8=$5-$1;print $1,$8}}' data.f:

或者awk ‘{if($5>$1){diff=$5-$1;print $1,diff}}' data.f

9、數(shù)據(jù)統(tǒng)計:

awk ‘{(total+=$5)}END{print total}' data.f:“{(total+=$5)}”和“{print total}”代表兩個不同的代碼段,如果沒有END每次的累積結(jié)果都會輸出,END可以理解為代碼段落的標志,這樣只輸出最終結(jié)果即{print total}只執(zhí)行一次。

10、統(tǒng)計文件大?。?/strong>

復制代碼 代碼如下:

ls –l | awk ‘{if(/^[^d]/) total=+$5}END{print “total KB:” total}':/^[^d]/行首匹配可以不寫域值$1

11、Awk內(nèi)置變量:

ARGC 命令行參數(shù)個數(shù)

ARGV 命令行參數(shù)排列

ENVIRON 支持隊列中系統(tǒng)環(huán)境變量的使用

FILENAME awk瀏覽的文件名

FNR 瀏覽文件的記錄數(shù)

FS 設(shè)置輸入域分隔符,等價于命令行- F選項

NF 瀏覽記錄的域個數(shù)

NR 已讀的記錄數(shù)

OFS 輸出域分隔符

ORS 輸出記錄分隔符

RS 控制記錄分隔符

12、awk內(nèi)置字符串處理函數(shù)

gsub ( r, s )在整個$0中用s替代r

gsub ( r, s , t )在整個t中用s替代r

index ( s , t )返回s中字符串t的第一位置

length ( s )返回s長度

match ( s , r )測試s是否包含匹配r的字符串,返回位置

split ( s , a , fs )在fs上將s分成序列a

sprint ( f m t , exp )返回經(jīng)f m t格式化后的exp

sub ( r, s ,$0) $0中s替換第一次r出現(xiàn)的位置

substr ( s , p )返回字符串s中從p開始的后綴部分

substr ( s , p , n )返回字符串s中從p開始長度為n的后綴部分

13、awk ‘gsub(/6\./,78) {print $0}' data.f:將所有“6.”換成78,并輸出

復制代碼 代碼如下:

awk ‘{if($2==”Sept”) {sub(/3/,”9″,$0); print $0}}' data.f:只替換第一個出現(xiàn)的

awk ‘BEGIN{print index(“hello”,”lo”)}':輸出的值為4

awk ‘{if($3==”3BC1997″) print length($3) ” ” $3}' data.f

awk ‘BEGIN{print match(“ABCD”,”B”)}':輸出2

awk ‘BEGIN{print match(“ABCD”,/B/)}':“//”和“”””效果一樣

awk ‘BEGIN {print split(“123#234#654″, myarray, “#”)}':返回數(shù)組元素個數(shù),123#234#654是字符串,以“#”為分隔符,將字符串放入數(shù)組。

awk ‘{if($1==34) print substr($3,2,7)}' data.f

awk ‘BEGIN{print substr(“helloleeboy”,2,7)}':輸出ellole

awk ‘BEGIN{print substr(“helloleeboy”,2,7)}' data.f:輸出n遍ellole,n為data.f的行數(shù)

14、awk ‘BEGIN{print”May\tDay\n\nMay \104\141\171″}':\104\141\171表示Day。\t:tab鍵,\n:換行,\ddd:八進制

15、echo “65” | awk ‘{printf “%c\n”,$0}':printf函數(shù),和c差不多,輸出為A。(ASCII碼)

復制代碼 代碼如下:

echo “65” | awk ‘{printf “%d\n”,$0}':輸出65數(shù)字。

awk ‘{printf “%-15s %s\n”,$2,$3}' data.f:“%-15s”左對齊15個字符長度

awk ‘{if(age<$1) print $0}' age=80 data.f和 awk ‘{age=49;if(age<$1) print $0}' data.f結(jié)果一樣,前者將值傳入awk,后者在awk中定義了一個變量。

相關(guān)文章

  • Linux用戶在第一次登錄時強制更改初始密碼

    Linux用戶在第一次登錄時強制更改初始密碼

    在多用戶Linux環(huán)境下,創(chuàng)建使用某個隨機默認密碼的用戶帳戶是標準做法。之后在成功登錄后,新用戶可以將默認密碼更改成自己的密碼。出于安全方面的原因,常常建議“迫使”用戶在第一次登錄后更改默認密碼,以確保最初的一次性密碼不再使用,需要的朋友可以參考下
    2015-10-10
  • 入門shell腳本基礎(chǔ)及原理

    入門shell腳本基礎(chǔ)及原理

    弄懂shell程序,源代碼,以及python腳本能夠向運維開發(fā)方向走,shell程序能夠管理集群,提高開發(fā)的效率,shell是命令解釋器,調(diào)用系統(tǒng)內(nèi)核,幫助你對內(nèi)核的刷新認識
    2021-09-09
  • Linux命令創(chuàng)建日期文件夾或者文件的實例代碼

    Linux命令創(chuàng)建日期文件夾或者文件的實例代碼

    本文通過實例代碼給大家介紹了Linux命令創(chuàng)建日期文件夾或者文件的相關(guān)知識,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • linux shell實現(xiàn)獲取用戶輸入指定范圍的單個字符的兩種方法

    linux shell實現(xiàn)獲取用戶輸入指定范圍的單個字符的兩種方法

    用shell實現(xiàn)的,要求獲取用戶輸一個字符a-zA-Z實現(xiàn)方法如下,需要的朋友可以參考下
    2013-03-03
  • 每天學一個 Linux 命令之more命令

    每天學一個 Linux 命令之more命令

    more命令,功能類似 cat ,more會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按 b 鍵就會往回(back)一頁顯示,而且還有搜尋字串的功能
    2016-12-12
  • shell按行讀取文件的3種方法

    shell按行讀取文件的3種方法

    這篇文章主要介紹了shell按行讀取文件的3種方法,需要的朋友可以參考下
    2014-04-04
  • 詳解linux less命令查看大文件

    詳解linux less命令查看大文件

    less 工具也是對文件或其它輸出進行分頁顯示的工具,應(yīng)該說是linux正統(tǒng)查看文件內(nèi)容的工具,功能極其強大。本文主要給大家介紹linux less命令查看大文件的相關(guān)知識,感興趣的朋友一起看看吧
    2018-10-10
  • 編寫shell腳本實現(xiàn)tomcat定時重啟的方法

    編寫shell腳本實現(xiàn)tomcat定時重啟的方法

    這篇文章主要介紹了編寫shell腳本實現(xiàn)tomcat定時重啟的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • Linux中文件權(quán)限目錄權(quán)限的意義及權(quán)限對文件目錄的意義

    Linux中文件權(quán)限目錄權(quán)限的意義及權(quán)限對文件目錄的意義

    本文給大家介紹Linux中文件目錄權(quán)限的意義及Linux的權(quán)限對于文件與目錄的意義,涉及到linux 文件、目錄、權(quán)限相關(guān)知識,對本文感興趣的朋友一起學習吧
    2016-01-01
  • awk區(qū)間取值的例子

    awk區(qū)間取值的例子

    awk區(qū)間取值的例子,匹配某一區(qū)間內(nèi)的值,有需要的朋友不妨參考下
    2013-02-02

最新評論