今天写了3行awk代码,算不上代码吧,花了2-3个小时。
代码需要从shell传个变量给awk,然后awk需要把这个变量做算术运算。折腾了很久,代码很简单,只是不熟悉awk中变量的定义。
具体说来,就是awk中变量定义和C是一样的,定义和使用时都不需要加$之类的操作符。另外可以通过-v参数传递变量进去。
下面是代码
awk -F':' -v cout=$i '{cout--; if(cout == 0) print $0;}'
这个可以输出文件第$i行(当然,我知道要输出地$i行跟简单,只是我举例的时候把很多无关内容都拿掉了而已)
说明:$i是shell传给命令行的变量,需要使用美元符号,而''内的代码属于awk来解析的,定义和使用时都不需要使用美元符号。
阅读(672) | 评论(0) | 转发(0) |