shell文本過濾編程(七):awk之變數傳遞

來源:互聯網
上載者:User

標籤:awk   指令碼   編程   

【著作權聲明:轉載請保留出處:blog.csdn.net/gentleliu。Mail:shallnew at 163 dot com】
由於awk經常在shell指令碼中使用,所以shell指令碼中的有些變數要傳遞到awk中使用,這一節就說一下awk引用shell中的變數方法。
為避免螢幕輸出太多東西,我們先將被操作檔案該為一行,如下:
# catgroup_file3
vboxusers:x:984:allen
1、 檔案名稱之前傳遞變數。
格式如下:awk ‘{print var1, var2}‘ var1=aaa var2=bbb filename

#!/bin/sh shell_var="test"awk '{printvar}' var=$shell_var group_file3
輸出結果為:
#./61_awk_var.shtest
這裡變數賦值要放在檔案名稱之前,否則變數值會取不到。比如如果指令碼這樣寫不會輸出變數值。
#!/bin/sh shell_var="test"awk '{print var}'group_file3 var=$shell_var
其實這種方法在BEGIN中無法使用變數,比如這樣寫指令碼:
#!/bin/sh shell_var="test" awk 'BEGIN{    print "begin output var:" var}{    print var}END{    print "end output var:" var} 'var=$shell_var group_file3
輸出結果為:
#./64_awk_var.shbegin outputvar:testend outputvar:test
2、 使用-v傳遞變數。
格式如下:awk -v var=$shell_var ‘{print var}‘ filename
#!/bin/sh shell_var="test"awk -vvar=$shell_var '{print var}'  group_file3
再試試該值在BEGIN中是否可以使用:
#!/bin/sh shell_var="test" awk -vvar=$shell_var 'BEGIN{    print"begin output var:" var}{    print var}END{    print "end output var:" var} ' group_file3


執行結果:
#./63_awk_var.shbegin outputvar:testtestend outputvar:test
這種方法傳遞的變數在BEGIN可以使用。
3、 直接使用shell變數。
格式如下:awk ‘{print "‘$shell_var‘"}‘ filename,注意:先用雙引號,再用單引號。
#!/bin/sh var="test" awk 'BEGIN{    print "begin outputvar:" "'$var'"}{    print "'$var'"}END{    print "end outputvar:" "'$var'"} ' group_file3
執行結果:
# ./65_awk_var.sh  begin output var:testtestend output var:test 
變數傳遞不但可以傳遞自訂變數,還可以傳遞環境變數,用法同自訂變數類似。。

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.