从awk文件执行另一个awk

时间:2012-11-22 11:43:23

标签: awk

是否可以从awk文件中执行另一个awk文件?使用awk文件我需要在当前文件夹中执行所有awk文件。是否可以在awk中执行此类操作?

4 个答案:

答案 0 :(得分:7)

是的,你可以。您需要使用system()功能。我假设你只想运行一次这些脚本。如果是这样,您可以将它们添加到包装器脚本的BEGIN块中:

BEGIN {
    system("awk -f ./script1.awk")
    system("awk -f ./script2.awk")
    system("awk -f ./script3.awk")
}

如果您需要执行大量脚本,则可以使用for循环。确保您的包装器脚本与您要执行的所有其他awk脚本不在同一目录中,或者它将包含在awk脚本的全局中......

BEGIN {
    system("for i in *.awk; do awk -f \"$i\"; done")
}

答案 1 :(得分:6)

1)是的。 2)不要。

awk是一个处理文本的工具。 shell(或操作系统上的任何传递)是一个用于调用命令和操作文件和进程的工具。

猜猜您应该使用哪一个来执行文件系统中的所有awk命令?

如果您告诉我们您的更大问题以及您的操作系统,我们可以为您提供指导。

答案 2 :(得分:2)

建议使用system功能。

答案 3 :(得分:0)

系统的一个常见用途是使用它来处理刚刚由awk脚本创建的输出文件。除非您在调用system之前首先关闭(outputfile),否则它可能无法工作。