Awk脚本-ARGV
我试图打印调用程序时输入的第一个参数,但它不起作用。 需要帮忙吗Awk脚本-ARGV,awk,argv,Awk,Argv,我试图打印调用程序时输入的第一个参数,但它不起作用。 需要帮忙吗 #!/bin/bash -f awk ' BEGIN{ print "argc: "ARGC print "argv0: "ARGV[0] print "argv1: "ARGV[1] } ' 运行时使用:/progName.awk“数据” 但是没有显示“数据”。将最后一行更改为: ' "$@" 现在您没有向awk传递任何参数 无关,不会更改任何功能,
#!/bin/bash -f
awk '
BEGIN{
print "argc: "ARGC
print "argv0: "ARGV[0]
print "argv1: "ARGV[1]
}
'
运行时使用:/progName.awk“数据”
但是没有显示“数据”。将最后一行更改为:
' "$@"
现在您没有向awk传递任何参数
无关,不会更改任何功能,但会将脚本的名称从
/progName.awk
更改为/progName.sh
或类似名称。由于它不是awk脚本,它是一个shell脚本,恰好调用awk来执行awk脚本。您可以用perl或ruby或其他任何东西替换awk脚本,它不会改变您拥有的是一个可执行的shell脚本的事实。将最后一行更改为:
' "$@"
现在您没有向awk传递任何参数
无关,不会更改任何功能,但会将脚本的名称从
/progName.awk
更改为/progName.sh
或类似名称。由于它不是awk脚本,它是一个shell脚本,恰好调用awk来执行awk脚本。您可以用perl或ruby或其他任何东西替换awk脚本,它不会改变您拥有的是一个可执行的shell脚本的事实。如果我想使用此输入与某个列进行比较,该怎么办?可以吗?当然可以。如果你在做某件事时遇到了困难,就用示例输入和预期输出发布一个新问题。同时-我在上面发布的是您问题的答案,因此请记住单击它旁边的复选标记以接受它。错误消息非常清楚-您正在告诉awk解析名为“ownerName”的文件,但您在执行脚本的目录中没有名为“ownerName”的文件。你以为会发生什么?听着,很明显你现在想做的事情与你最初问的问题和我回答的问题无关。正如我之前所说,发布一个新问题。如果我想使用此输入与某个列进行比较,该怎么办?可以吗?当然可以。如果你在做某件事时遇到了困难,就用示例输入和预期输出发布一个新问题。同时-我在上面发布的是您问题的答案,因此请记住单击它旁边的复选标记以接受它。错误消息非常清楚-您正在告诉awk解析名为“ownerName”的文件,但您在执行脚本的目录中没有名为“ownerName”的文件。你以为会发生什么?听着,很明显你现在想做的事情与你最初问的问题和我回答的问题无关。正如我之前所说,发布一个新问题。作为旁白:-f
使bash
在禁用路径名扩展(globbing)的情况下运行(它可能看起来像是让sed
和awk
从文件中读取程序的选项,但在bash
中,它意味着一些不同的东西;为了简单地让它读取脚本文件,根本不需要任何选项。)另外,-f
使bash
在禁用路径名扩展(globbing)的情况下运行(它可能看起来像是让sed
和awk
从文件中读取程序的选项,但在bash
中,它意味着不同的东西;要简单地让它读取脚本文件,根本不需要任何选项)。