AWK调用SHELL,并将变量传递给SHELL

时间:2023-12-31 22:00:32

在Shell脚本中调用awk是非常自然和简单的,以前还写过一个关于awk/shell相互传递变量的文章:awk与shell之间的变量传递方法
在awk脚本中,如果需要调用shell脚本/命令,则需要使用system()函数,如果需要将变量传递给被调用的shell,则写为 system(“sh my.sh ” $var) 注意第二个引号前有一个空格。

awk调用shell,并将变量传递给shell,看下面的演示,就一下明白了:

1
2
3
4
5
6
7
8
9
jay@jay-linux:/tmp$ cat data.txt
var1 var2
1 2
jay@jay-linux:/tmp$ cat my.sh
#!/bin/bash
echo $1
jay@jay-linux:/tmp$ awk '{system("sh my.sh " $2)}' data.txt
var2
2