Chinaunix

标题: set替换IP搞不定,求大神 [打印本页]

作者: tanjiyong138    时间: 2014-06-11 16:19
标题: set替换IP搞不定,求大神
本帖最后由 tanjiyong138 于 2014-06-11 16:23 编辑

host1:~ # cat 1
1.1.128.39
191.161.128.39
192.168.128.39
host1:~ # sed 's/1.1/193.163/' 1
193.163.128.39----只想替换这个
193.163.161.128.39---(.代表任意字符)不想替换它怎么搞
192.168.128.39
host1:~ #


补充说明
1.1.128.39的格式是不固定有以下几种场景
   1.1.128.39   fdsa
1.1.128.39
fdsjal=1.1.128.39
fjdsa < 1.1.128.39 >
作者: Herowinter    时间: 2014-06-11 16:23
回复 1# tanjiyong138
  1. sed 's/^1\.1/193.163/' i
  2. 193.163.128.39
  3. 191.161.128.39
  4. 192.168.128.39
复制代码

作者: jimmy14k    时间: 2014-06-11 16:24
^匹配行首
\进行转义
sed 's/^1\.1/193.163/' 1
作者: tanjiyong138    时间: 2014-06-11 16:24
回复 2# Herowinter


    IP的格式是不固定的,哎
作者: jimmy14k    时间: 2014-06-11 16:28
你可以偿试匹配"1.1."  替换成"193.163."

sed 's/1\.1\./193.163./' 1
作者: jeffreyst    时间: 2014-06-11 16:29
ip是唯一的吗?
sed 's/193\.163\.128\.39/xxxx/'
这样不行吗?
作者: Herowinter    时间: 2014-06-11 16:33
回复 1# tanjiyong138
\b?
  1. sed 's/\b1\.1\b/193.163/' i
  2. 193.163.128.39
  3. 191.161.128.39
  4. 192.168.128.39
  5. 193.163.128.39   fdsa
  6. 193.163.128.39
  7. fdsjal=193.163.128.39
  8. fjdsa < 193.163.128.39 >

  9. cat i
  10. 1.1.128.39
  11. 191.161.128.39
  12. 192.168.128.39
  13. 1.1.128.39   fdsa
  14. 1.1.128.39
  15. fdsjal=1.1.128.39
  16. fjdsa < 1.1.128.39 >
复制代码

作者: zl624867243    时间: 2014-06-11 16:33
[root@vm1 shuzu]# sed '0,/1.1/ s/\(1.1 \).*/\1193.163/' ip.txt

QQ截图20140611163320.png (2.24 KB, 下载次数: 46)

QQ截图20140611163320.png

作者: zl624867243    时间: 2014-06-11 16:42
刚发错了 楼主再看下
[root@vm1 shuzu]# sed '0,/1/ s/\(1\).*/\193.163.128.39/' ip.txt
作者: zl624867243    时间: 2014-06-11 16:44
[root@vm1 shuzu]# sed '0,/1/ s/\(1\).*/\193.163.128.39/' ip.txt

xx.png (2.16 KB, 下载次数: 47)

xx.png

作者: tanjiyong138    时间: 2014-06-11 16:50
回复 5# jimmy14k


   
1.1.128.33 1.1.128.58

这样的就不可以了
作者: tanjiyong138    时间: 2014-06-11 16:52
回复 7# Herowinter


    193.163.128.100 1.1.128.158   这样就不可以了
作者: tanjiyong138    时间: 2014-06-11 16:54
回复 9# zl624867243


    SR5S1:~ # sed '0,/1/ s/\(1\).*/\193.163.128.39/' 1
193.163.128.39
1.1.128.33
2=11.1.128.33
3=191.168.128.33
4=191.161.1.33
5=192.168.128.33
6=19.16.128.33
<1.1.128.33>
< 1.1.128.33 >
1.1.128.33 1.1.128.58
SR5S1:~ #
作者: Herowinter    时间: 2014-06-11 16:58
回复 12# tanjiyong138
  1. echo "193.163.128.100 1.1.128.158"|sed 's/\b1\.1\b/193.163/'
  2. 193.163.128.100 193.163.128.158
复制代码
哪里替换错了?
   
作者: tanjiyong138    时间: 2014-06-11 17:11
回复 14# Herowinter


# cat 2
1.1.128.12 1.1.128.13 1.1.128.14
SR5S1:~ # sed 's/\b1\.1\b/193.163/' 2
193.163.128.12 1.1.128.13 1.1.128.14
#
作者: zhangpf2008hi    时间: 2014-06-11 17:17
sed 's/\b1\.1\b/192.163/g'
作者: zhangpf2008hi    时间: 2014-06-11 17:17
Herowinter写的没问题,加个全局替换就行了
作者: Herowinter    时间: 2014-06-11 17:21
本帖最后由 Herowinter 于 2014-06-11 17:22 编辑

回复 15# tanjiyong138
加上g全局替换应该可以了。
  1. sed 's/\b1\.1\b/193.163/g'
复制代码

作者: tanjiyong138    时间: 2014-06-11 17:23
感谢  各位大神问题已经得以解决




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