我想写一个awk脚本,这样
我可以直接在bash中运行脚本名称,而无需将awk
作为命令名称。
如何安排输入文件名和其他参数在命令行指定并传递到脚本?
脚本应该说myscript.awk
以shebang开头:
#! /usr/bin/awk -f
或
#! /usr/bin/awk
还是没有shebang?
我如何编写脚本来处理命令行参数,以便我可以像myscript.awk inputfile arg1 arg2
或myscript.awk arg1 arg2 inputfile
那样运行它?
我应该如何处理awk
的选项,例如-F'\t'
?
或者有哪些替代方法可以做到这一点?
或者我应该通过在我的awk程序上编写一个调用awk
的bash脚本来间接地做这件事吗?
由于
答案 0 :(得分:2)
我更喜欢使用bash来完成大部分工作,然后使用所有参数调用awk。这样你就可以完全访问bash内置函数和其他内容。
您可以这样做:
#!/bin/bash
var1=$1
var2=$2
separator=$3
awk -F "$separator" -v myvar1="$var1" -v myvar2="$var2" '
BEGIN {
print myvar1, myvar2
}
'
如果参数包含空格(如许多文件名),则双引号很好。