是否可以从 awk 文件执行另一个 awk 文件?使用 awk 文件我需要执行当前文件夹中的所有 awk 文件。是否可以在 awk 中进行此类操作?
问问题
10356 次
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 回答