4

我使用以下 #! 为 gawk 创建可执行脚本:

#!/usr/bin/gawk -f

但是,如果我想启用区间正则表达式,我似乎无法在 #!中添加--re-interval或添加。-W re-interval

#!/usr/bin/gawk --re-interval -f
#Above doesn't work

有没有办法让脚本在没有命令行参数的情况下激活此选项,或者有更好的方法输入参数以使其工作?

如果这对您的解决方案很重要,我正在使用 cygwin

4

1 回答 1

3

这是不可能的。有关原因和替代方法,请参见http://hibernia.jakma.org/~paul/awk-faq.html#script-args 。

如何在 bang-path 中将选项传递给 AWK?

简短的回答是你不能,因为内核不会解析超出脚本名称的 bang-path。该行的其余部分在第二个参数中作为单个字符串传递。即这不起作用:

#!/path/to/gawk --posix --re-interval -f

....awk 脚本..

相反,请使用 shell 脚本,例如:

#!/bin/bash

gawk --posix --re-interval -v foo=$1 ' BEGIN { print foo } '

于 2011-03-04T22:18:20.197 回答