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
中,它意味着不同的东西;要简单地让它读取脚本文件,根本不需要任何选项)。