Каковы советы по отладке любого AWK script?
Как отладить AWK script
Ответ 1
Используйте оператор печати в своем коде для печати значений переменных/возвращаемых значений и т.д. Если вы используете gawk, вы можете использовать опцию -W dump-variables[=file]
для вывода переменных в файл для отладки.
Кроме того, интересна опция -W lint[=value]
. Дополнительную информацию см. В документации. Другие версии AWK, такие как pgawk, обеспечивают профилирование.
Страница книги sed/awk для отладки для вашей справки.
Ответ 2
Теперь есть страница: Invugger Invocation - Руководство пользователя GNU Awk; упоминание вызова вроде:
$ gawk -D -f getopt.awk -f join.awk -f uniq.awk inputfile
... в противном случае возникнет интерфейс оболочки; но у меня нет переключателя --debug
/-D
на моем GNU Awk 3.1.7, к сожалению..
EDIT: нашел еще об этом:
Арнольд Роббинс пишет в феврале 2010 года.
Распространение доступно на http://www.skeeve.com/gawk/gawk-3.1.7-bc-d.tar.gz...
Эта версия такая же, как и 3.1.7, но с новым механизмом выполнения и отладочной версией gawk, названной, скорее, образно "dgawk"...
И затем:
GNU Awk: Это не ваш отец Awk | Доктор Добб
Отладка уровня Awk с отладчиком, подобным GDB, отладчику GNU. Этот первый стал доступен с gawk 4.0 (выпущен в 2011 году) как отдельный исполняемый файл, но теперь он встроен в обычный исполняемый файл gawk.
Итак, это объясняет, почему у меня его нет... время для сборки из исходного кода, думаю :)
Ответ 3
Возможно, вы захотите попробовать этот старый камень (последнее обновление 2000/01/16, без лицензии):
awkdb - отладчик AWK
- позволяет вам выполнить код
- позволяет установить (условные) точки останова
- позволяет вам проверять переменные
- позволяет изменять переменные
- написан в AWK, так что он переносится