从awk文件执行另一个awk

sur*_*raj 6 awk

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

Ste*_*eve 7

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

BEGIN {
    system("awk -f ./script1.awk")
    system("awk -f ./script2.awk")
    system("awk -f ./script3.awk")
}
Run Code Online (Sandbox Code Playgroud)

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

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

  • @ sg-lecram:是的,你可以,但这是一个'awk`问题.也许OP需要执行其他处理,而'awk`是适合这项工作的工具.永远不要解析`ls`. (2认同)

Ed *_*ton 6

1)是的.2)不要.

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

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

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


Dee*_*eep 2

建议使用system函数。