红联Linux门户
Linux帮助

shell中删除变量指定的行

发布时间:2007-03-22 00:42:54来源:红联作者:worldVideo
今天遇到了一个问题,就是删除匹配到一个变量的行。

例如:
$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'
使用了两条命令来删除的,首先将原来的替换为空,再删除空行。
文章评论

共有 0 条评论