在命令行中将BASH参数传递给gawk

Tim*_*Tim 1 bash awk command-line gawk

我想创建一个简单的gawk脚本来提取某个文件的第n列.我希望在命令行输入文件的名称n的值.我用这个脚本制作可执行文件chmod +x.

因此,要从文件foo中提取第三列,我将输入:

 awkextract foo 3 
Run Code Online (Sandbox Code Playgroud)

我对脚本的尝试awkextract是:

 #!/opt/local/bin/gawk -v k=$2 -f 
 {print $k}
Run Code Online (Sandbox Code Playgroud)

但是无意义的结果表明这不起作用.我如何解决它?

PS.我知道我可以通过cut命令来做到这一点,我只是在尝试......

Ed *_*ton 5

不要通过shebang调用awk,只需将它放在shell脚本中:

/opt/local/bin/gawk -v k="$2" '
{print $k}
' "$1"
Run Code Online (Sandbox Code Playgroud)