我正在使用gawk,我想知道是否可以输出脚本行。我查看了gawk手册并找到了有关auto-set variables的信息,但未列出__LINE__
之类的内容。感谢
这里要澄清我的意思是awk脚本的实际行不是我读的输入。所以,如果我cat foo | script.awk
,我正在寻找script.awk中的行号。基本上我想在脚本中显示错误发生的行号,如果可能的话。
答案 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