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 に答える