sed中使用变量

 
在sed中使用变量
2011-06-13 13:48

在sed中使用变量

通常,我们使用sed进行变量替换的时候,替换和被替换变量都是hard-coded的。例如:

sed -n ‘/comm/p’ /tmp/test.log

如果我们用一变量var,它的值根据上下文变化

$ var=”comm”,定义了变量,那么我们在sed的使用中这样使用变量

$ sed -n ‘/’”$var”‘/p’ /tmp/test.log

注意,是用单引号包含双引号来引用变量。

最初接触这个命令的人,可能以为$var之前的单引号会结束当前的script,其实不会。

若要在文本中匹配一个范围的话,可以使用的sed匹配
$ sed -n ‘/’”$var_start”‘/{p;:a;n;/’”$var_end”‘/p;ba}’ /tmp/test.log

-n 关闭sed的默认输出
/$var_start/ 当数据行中查找到字符串$var_start 时开始工作,后面的是命令组{}
p; 打印出$var_start 这一行
:a 定义一个标签,名称为a
n; 读取下一行
/$var_end/p; 当读入的这一行中查找到$var_end 字符串时,输出
ba 跳转到标签a

其实有个问题,应该适时跳出的,不然要等文件全部读取完,效率低了。自己改吧


http://hi.baidu.com/afantihome/blog/item/cc51e70ac47bea0795ca6bd0.html
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值