Chinaunix首页 | 论坛 | 博客
  • 博客访问: 126174
  • 博文数量: 36
  • 博客积分: 94
  • 博客等级: 民兵
  • 技术积分: 200
  • 用 户 组: 普通用户
  • 注册时间: 2009-02-23 17:34
文章分类
文章存档

2015年(1)

2013年(7)

2012年(3)

2011年(25)

分类:

2011-08-18 12:34:50

原文地址:脚本中 awk 内参数传递 作者:xu_liuzhen

昨天写个小脚本其中有一句:
awk 'BEGIN { FS = "." } {  ORS = "."; for ( k = 1; k <= (NF - $2); k++ )  print $k }'
问题是$2这个参数传不进来。最后找资料才明白awk中本来"$"就使用的多所以会和参数前的“$”无法区分,所以这里应该写成这样:
awk 'BEGIN { FS = "." } {  ORS = "."; for ( k = 1; k <= (NF - '"$2"'); k++ )  print $k }'

还有在网上看到的一些关于awk参数传递的方式:

這個問題有兩個可行的方法,第一個方法只是把程式當中需要用到此變數的 
地方直接展開,例如要得知您目前使用哪些   tty,可以使用: 

who   |   awk   '/^ ' "$USER " '/   {   print   $2   } '   (1) 

awk   程式的程式通常會用單引號括起來,因為   awk   程式裡面經常會用到   $ 
字元,如果使用雙引號的話,shell   本身會解釋這個字元。所以啦,在這種 
特殊情形下,我們想要   shell   解釋   $USER   當中的   $   字元時,就必需先用 
單引號把前半段的句子暫時括起來,然後用雙引號把   $USER   括起來,再用 
單引號把隨後的句子括起來。請注意,雙引號在某些狀況下可以略去不寫, 
也就是說,可以
阅读(801) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~