linux中的awk命令详解(Linux三剑客awk命令篇五)

Linux三剑客awk命令篇五:引用shell变量的几种方式

关于awk的原理等基本知识请参考上四篇:

Linux三剑客awk命令篇一之原理及基本命令

Linux三剑客awk命令篇二之命令操作符

Linux三剑客awk命令篇三之内部变量

Linux三剑客awk命令篇四之流程控制语句

编写shell脚本时,经常会使用到awk程序。

但是有些复杂的逻辑,可能需要在awk中使用在shell中定义的变量,而且awk程序处理之后,产生的中间变量,还需要在shell中继续处理。

下面我们就来简单谈一下引用shell变量的方式。

方式1、使用awk -v选项

案例:

#!/bin/bash

#在awk中引用shell变量

#auth:odysee

name=odysee

#这里的$name的目的就是证明在awk中不能直接引用shell变量

awk -v cname=$name 'BEGIN{print cname,$name}'

linux中的awk命令详解(Linux三剑客awk命令篇五)(1)

这里是通过cname变量间接的接受shell变量$name的值

执行脚本

linux中的awk命令详解(Linux三剑客awk命令篇五)(2)

方式2、使用"'$name'"

注意是"双引号 单引号 shell变量 单引号 双引号"的格式

案例:

#!/bin/bash

#在awk中引用shell变量

#auth:odysee

name="odysee"

awk 'BEGIN{print "'$name'"}'

~

linux中的awk命令详解(Linux三剑客awk命令篇五)(3)

执行脚本

linux中的awk命令详解(Linux三剑客awk命令篇五)(4)

方式3:"'"$var"'"

注意是"双引号 单引号 双引号 shell变量 双引号 单引号 双引号"的格式。

补充:

变量的值中包含空格,为了shell不把空格作为分隔符,则应使用方法3。

案例:

#!/bin/bash

#在awk中引用shell变量

#auth:odysee

name="odysee"

awk 'BEGIN{print "'"$name"'"}'

linux中的awk命令详解(Linux三剑客awk命令篇五)(5)

执行脚本

linux中的awk命令详解(Linux三剑客awk命令篇五)(6)

补充:

关于引用shell中的位置变量

linux中的awk命令详解(Linux三剑客awk命令篇五)(7)

执行脚本

linux中的awk命令详解(Linux三剑客awk命令篇五)(8)

以上三种方式推荐给大家。

下一篇:

Linux三剑客awk命令补充篇,案例分析

欢迎大家给予宝贵的意见或者建议。

欢迎大家补充或者共享一些其他的方法。

感谢支持。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页