awk - gawk有什么像__LINE__宏吗?

时间:2013-10-14 20:19:22

标签: awk gawk

我正在使用gawk,我想知道是否可以输出脚本行。我查看了gawk手册并找到了有关auto-set variables的信息,但未列出__LINE__之类的内容。感谢

这里要澄清我的意思是awk脚本的实际行不是我读的输入。所以,如果我cat foo | script.awk,我正在寻找script.awk中的行号。基本上我想在脚本中显示错误发生的行号,如果可能的话。

1 个答案:

答案 0 :(得分:1)

不,它没有。如果您想了解解决方法的建议,请告诉我们,例如:从原始awk脚本创建一个新的awk脚本:

$ cat tst.sh
tmp="/usr/tmp/tmp.awk"
trap 'rm -f "$tmp"; exit' 0
> "$tmp"
chmod oug+x "$tmp"

awk '{ sub(/__LINE__/,NR); print }' <<! > "$tmp" && "$tmp"
awk 'BEGIN {
    print "this is line", __LINE__
    print "this is line", __LINE__
    print "this is line", __LINE__
}'
!
$ ./tst.sh
this is line 2
this is line 3
this is line 4