Chinaunix首页 | 论坛 | 博客
  • 博客访问: 503823
  • 博文数量: 401
  • 博客积分: 244
  • 博客等级: 入伍新兵
  • 技术积分: 2215
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-04 10:02
文章分类

全部博文(401)

文章存档

2013年(37)

2012年(364)

分类:

2012-11-23 15:20:37

原文地址:shell中删除变量指定的行 作者:CUDev

今天遇到了一个问题,就是删除匹配到一个变量的行。

例如:
$a="192.168.0.1/24"
$cat test.txt
192.168.0.1
192.168.0.1/24
现在是要删除包含192.168.0.1/24的行.

sed “/$a/d” test.txt
不行,因为变量中包含/,会产生歧义。
以前我写过文章,可以使用@来转移特殊字符

找了很长时间,没有找到解决方法,只好使用一种BT的方法了。
$sed "s@$a@@" test.txt | sed '/^$/d'
使用了两条命令来删除的,首先将原来的替换为空,再删除空行

不知道哪一位网友知道更好的方法?
阅读(245) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~