7

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

4

4 回答 4

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")
}
于 2012-11-22T12:58:17.847 回答
6

1) 是的。2)不要。

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

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

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

于 2012-11-22T15:34:24.463 回答
2

建议使用system函数。

于 2012-11-22T11:50:00.490 回答
0

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

于 2014-02-10T01:03:36.620 回答