1

我正在使用 gawk,我想知道是否可以输出脚本的行。我查看了 gawk 的手册并找到了有关自动设置变量__LINE__的信息,但没有列出任何类似的信息。谢谢

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

4

1 回答 1

2

不,不是的。如果您需要解决方法的建议,请告诉我们,例如从原始 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
于 2013-10-14T22:48:13.250 回答