Chinaunix

标题: sed完全匹配问题 [打印本页]

作者: Kernore    时间: 2009-05-27 13:05
标题: sed完全匹配问题
现在有一个文本文件test.txt ,内容如下:
192.168.1.1        host1
192.168.1.11      host2
192.168.1.111    host3

我想脚本调用删除掉192.168.1.1一行,但是用sed -i '/192.168.1.1/d' test.txt后所有的内容都被删除了,原因是192.168.1.11和192.168.1.111都包含192.168.1.1
请问有没有办法达到目的,谢谢!
作者: 可恶的    时间: 2009-05-27 13:08
sed '/192.168.1.1\s/d'
作者: blackold    时间: 2009-05-27 13:08
sed -i '/192\.168\.1\.1[^0-9]/d'
作者: kwokcn    时间: 2009-05-27 13:08
sed -i '/^192\.168\.1\.1[ \t]/d' test.txt
作者: haoks    时间: 2009-05-27 13:09
  1. sed '/192.168.1.1[[:blank:]]/d' Yourfile
复制代码

作者: Kernore    时间: 2009-05-27 13:15
非常感谢
不过试了一下,似乎都不行。
作者: kwokcn    时间: 2009-05-27 13:16
@@
那这样呢?

  1. sed -i '/^\<192\.168\.1\.1\>/d' URFILE
复制代码

作者: wtuter    时间: 2009-05-27 13:17
标题: 回复 #1 Kernore 的帖子
sed -n '/192\.168\.1\.1\b/p' 3
192.168.1.1        host1

你什么系统?
作者: haoks    时间: 2009-05-27 13:17
你用的是什么系统?
我是测试后才给你发上来的。
要么就是你给出的例子不合适,没有描述清楚问题。
  1. sed '/192\.168\.1\.1[[:blank:]]/d' Yourfile
复制代码

作者: 寂寞烈火    时间: 2009-05-27 13:19
grep -v '192.168.1.1\b'
作者: Kernore    时间: 2009-05-27 13:23
非常感谢,这几个都可以,我用的debian
sed -i '/^\<192\.168\.1\.1\>/d' URFILE
sed -n '/192\.168\.1\.1\b/p' 3
sed '/192\.168\.1\.1[[:blank:]]/d' Yourfile
文件内容没有完全列出来,文件里面有些行ip后没有空格,最后一个答案没成功可能和这个有关系。
作者: LGMENG    时间: 2009-05-30 09:23
grep can meet your requirement

grep -v "\<192\.168\.1\.1\>"
作者: greendays    时间: 2009-05-30 09:39
标题: 回复 #1 Kernore 的帖子
sed -nr '/192.168.1.1[0-9]+/p'  urfile




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2