在awk中获取系统输出可以通过使用管道将命令的输出传递给awk,并使用$()
来捕获命令的输出。以下是一个示例:
awk '
BEGIN {
print "Before command execution:"
}
{
cmd="ls -l"
print $0 | "cmd"
}
END {
print "After command execution:"
}
'
在这个示例中,BEGIN块和END块用于输出“Before command execution”和“After command execution”。在内部块中,我们使用$()
捕获ls -l
命令的输出,并将其传递给awk。
如果您想要执行更复杂的任务,可以使用awk
的system()
函数。例如,以下代码将执行cat /etc/passwd
命令,并将输出分成每行:
awk '
BEGIN {
print "Before command execution:"
}
{
cmd="cat /etc/passwd"
print $0 | "cmd"
}
END {
print "After command execution:"
}
'
在内部块中,我们使用$()
捕获cat /etc/passwd
命令的输出,并将其传递给awk。
领取专属 10元无门槛券
手把手带您无忧上云