sed、awk调用shell变量的方法

我们在编写shell脚本的时候,经常会遇到在脚本中使用awk或sed去调用shell环境中的变量的时候,下面我简单的说一下调用的方法.
sed一般使用单引号,sed引用shell变量时使用双引号即可,双引号是弱转义,不会去除$的变量表示功能,而单引号为强转义,会把$作为一般符号表示,不会表示为变量.
awk在调用shell变量时,需要使用参数-v,举例说明:
awk -v a=$second -v b=$count '$2==a{sum = $1};END {print sum/b}' filename
其中$second、和$count为shell中变量,可以看出,每调用一次变量都要加一个-v参数,后面使用shell变量的时候,就不用加$了,直接是a和b就好了.

说简单点就是,shell中的变量在awk程序中无法使用,因为在执行AWK时,是一个新的进程去处理的,因此就需要-v 来向awk程序中传参数了,你比如在shell程序中有一个变量a=15,你在awk程序中直接使用变量a是不行的,而你用awk -v b=a, 这样在AWK程序中就可以使用变量b了!也就相当于使用a了!

猜你喜欢

转载自lionlx.iteye.com/blog/1175850