1. 问题:awk如何访问shell变量?

答案:

[machine][/u/cj]> ab=a
[machine][/u/cj]> echo “”|awk “{ printf \”%s\n\”,\”$ab\”}”

要点:

  1. 使用双引号“”将awk语句括起来
  2. 对于在awk语句中的出现的“”,分别用转义,即“ ”
    shell变量假设为ab
    那么awk语句即为
    “$ab”
  3. note by 2013/10/02, 对于这个问题,其实还有另外一种方案
    echo “”|awk “{ print ab }” ab=cde
    注意,ab=cde要紧跟在awk代码之后,
    awk “{ print ab }” proxy.sh ab=cde就是不正确的一种做法

2. 问题:如何得到每行的列数?
答案:
{llt 53110 c918f4ec13}lltest>echo a b c|awk ‘{print $NF}’
c
{llt 53110 c918f4ec13}lltest>echo a b c|awk ‘{print NF}’
3

 

Technorati 标签:
Advertisements