在有一些脚本中,可以看到awk '{print $$1}'这种写法,我们正常使用一般都是一个$符号。
本文通过例子来让大家理解一下多个$$的原理。
我这里创建一个whsir的文件,文件内容如下:
1 2 3 4 5 |
cat whsir 2 3 c 3 1 d 4 2 o r 5 4 h u b |
然后执行
1 2 3 4 5 |
awk '{print $$1}' whsir 3 d r b |
我这里解释一下上面的结果是怎么输出的。
第一行:先执行$1,这里$1的值是2,然后将返回的2与前面的$结合构成了$2,然后再执行$2,所以最终结果是3
第二行:先执行$1,这里$1的值是3,然后将返回的3与第二个$结合构成了$3,然后再执行$3,所以最终结果是d
第三行:先执行$1,这里$1的值是4,然后再执行$4,所以最终结果是r
第四行:先执行$1,这里$1的值是5,所以最终结果是b
其实$$1的意思就是,先返回$1的值,然后结合$1返回的值再执行一遍$。
同理,如果是$$$也是一样的道理。
1 2 |
awk '{print $$$1}' whsir c |
先执行$1,这里$1的值是2,然后将返回的2与前面的$结合构成了$2,然后再执行$2,这里$2是3,然后与$结合构成了$3,所以最终结果是c。
最后我们来思考一下,如果$$$$1、$$$$$1呢?
原文链接:举例解释awk '{print $$1}'多个$含义,转载请注明来源!