awk 替換文本中某一字段

#cat $fileinp| awk '/$varkey/{$3=$var1}1{print $0}' filetmp ;mv filetmp $fileinp
  #cat $fileinp | grep 'Basis_ome_bat' | awk '$3="222" {print $0}' 
  ### awk '/Basis_ome_bat/{$2=$2+300}1' file 1<>file
  #CMD="awk '/$varkey/{$3=$var1}1{print $0}' $fileinp > tmp ; mv tmp $fileinp"
  #echo $CMD
  #eval $CMD

  awk '/'$varkey'/{$3=“'$var1'”}1{print $0}' $fileinp > tmp ; mv tmp $fileinp


awk 引用外部變量需注意,用雙引號套單引號

!=====================================================================

以下轉載自http://www.cnblogs.com/mydomain/archive/2012/09/24/2699467.html

$ str=Hello

$ awk 'BEGIN{print " '$str' "}'

Hello

看上去是雙引號套單引號,其實真正的原因爲:

這是shell的功能,shell對單引號和雙引號,按從左到右的順序成對匹配

awk命令用單引號引起來,就是防止shell對其中內容進行解釋

awk '{print " '$str' "}' file


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