在SHELL中如何傳遞shell變量給awk

 一:"'$var'"
這種寫法大家無需改變用'括起awk程序的習慣,是老外常用的寫法.
如:
var="test"
awk 'BEGIN{print "'$var'"}'
這種寫法其實際是雙括號變爲單括號的常量,傳遞給了awk.
如果var中含空格,爲了shell不把空格作爲分格符,便應該如下使用:
var="this is a test"
awk 'BEGIN{print "'"$var"'"}'

二:'"$var"'
這種寫法與上一種類似.
如果變量含空格,則變爲'""$var""'較爲可靠.

三.把括起awk程序的''變爲"",使用"$var"
如:
$var="this is a test"
awk 'BEGIN{print "$var"}"

這是因爲在""裏$是特殊字符,而在''裏$是普通字符.

四:export 變量,使用ENVIRON["var"]形式
如:
$var="this is a test";export $var
awk 'BEGIN{print ENVIRON["var"]}'

五:當然也可以使用-v選項
如:
$var="this is a test"
awk -vnvar="$var" '{print nvar}'
這樣便把系統變量定義成了awk變量.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章