# gawk '{cmd="ls";system(cmd)}' argFile
argFile argOne
argFile argOne
argFile argOne
argFile argOne
(1)awk中使用system执行复杂的SHELL命令。
# gawk '{cmd="ls";system(cmd)}' argFile
argFile argOne
argFile argOne
argFile argOne
argFile argOne
(2)awk中用双引号把命令括起来,然后用getline获取命令执行的结果。
#gawk '{ "ifconfig -a "| getline M; print M; }' argFile
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
net0: flags=100001100843<UP,BROADCAST,RUNNING,MULTICAST,ROUTER,IPv4,PHYSRUNNING> mtu 1500 index 4
inet 10.134.9.30 netmask ffffff00 broadcast 10.134.9.255
由于argFile只有四行,因此只输出了四行。getline不能获取到system执行命令之后的结果。
(3)在awk中也可以跟执行shell命令一样调用SHELL脚本。
# cat argFile