shell文本過濾編程(八):awk之內建函數

來源:互聯網
上載者:User

標籤:Regex   awk   

【著作權聲明:轉載請保留出處:blog.csdn.net/gentleliu。Mail:shallnew at 163 dot com】

這一節來見識一下a w k許多強大的字串函數及其使用方法。

1、 sub 和 gsub函數:
用法:sub( Ere, Repl, [ str ] )
gsub( Ere, Repl, [ str ] )
在第三個參數給出字串中尋找滿足Ere 參數指定的擴充Regex的字串,並使用第二個參數替換之。如果未指定 In 參數,預設值是整個記錄($0 記錄變數)。Sub函數替換第一個符合模式的字串,gsub會替換所有符合模式的字串。
# awk 'BEGIN{buf="Hello,awk! there is awktutorial!";sub(/awk/, "world", buf); print buf}'Hello,world! there is awk tutorial!# echo "Hello,awk! there is awk tutorial" | awk'{sub(/awk/, "world"); print $0}'Hello,world! there is awk tutorial# awk 'BEGIN{buf="Hello,awk! there is awktutorial!";gsub(/awk/, "world", buf); print buf}'Hello,world! there is world tutorial!# echo "Hello,awk! there is awk tutorial" | awk'{gsub(/awk/, "world"); print $0}'Hello,world! there is world tutorial#
2、 index函數
index( String1, String2 );
在第一個參數string1中尋找字串string2,返回首次出現的位置。
# echo "Hello,awk! there is awk tutorial" | awk '{printindex($0, "awk")}'7#
3、 length函數,blength函數
length[(String)];返回參數指定字串的長度,以字元為單位,如果未給出 String 參數,則返回整個記錄的長度($0記錄變數)。
# echo"Hello,awk! there is awk tutorial" | awk '{print length()}'32#
4、 substr函數
substr( String,M, [ N ] );返回從字串string從第M位置開始,之後的N個字元的字串。M 參數指定為將 String 參數中的第一個字元作為編號 1。如果未指定 N 參數,則子串的長度將是 M 參數指定的位置到 String 參數的末尾的長度。
# echo"Hello,awk! there is awk tutorial" | awk '{print substr($0, 5)}'o,awk! there isawk tutorial# echo"Hello,awk! there is awk tutorial" | awk '{print substr($0, 5, 6)}'o,awk!#
5、 spilt函數
split( String,A, [Ere] );將 String 參數指定的參數分割為數組元素 A[1], A[2], . . ., A[n],並返回 n 變數的值。此分隔可以通過 Ere 參數指定的擴充Regex進行,或用當前欄位分隔符號(FS 特殊變數)來進行(如果沒有給出 Ere 參數)。除非上下文指明特定的元素還應具有一個數字值,否則 A 數組中的元素用字串值來建立。
# echo"Hello,awk! there is awk tutorial" | awk '{split($0, arr); for (i inarr){print i,arr[i]}}'4 awk5 tutorial1 Hello,awk!2 there3 is
awk for …in 迴圈,是一個無序的迴圈。並不是從數組下標1…n ,因此使用時候需要注意。
6、 system函數
system(cmd);執行cmd 參數指定的命令,並返回退出狀態。
# awk 'BEGIN{system("echo $HOME")}'/root
原來awk裡面還可以調用shell 命令,高大上啊。
Awk系列文章就講這麼多,awk在文本處理方面相當出色,功能也很強大,掌握awk本系列已經可以做很多事情了,下一節將開始講述sed命令。


shell文本過濾編程(八):awk之內建函數

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.