Chinaunix

标题: shell 带反斜杠的替换 [打印本页]

作者: cestbonE    时间: 2017-04-20 10:39
标题: shell 带反斜杠的替换
我想要将下面的IP地址进行替换


HOSTS=http\://127.0.0.1\:444/bb5/xmlrpc  (属于文本 test.txt)

换成


HOSTS=http\://172.16.10.188\:3306/am5/xmlrpc  (属于文本 key.txt)


但是由于存在 \ ,导致一直替换不成功,求大神指点一下,需要怎样替换才能替换成功

作者: o枫叶o飘零    时间: 2017-04-20 11:27
  1. sed 's#127.0.0.1\\:444/bb5#172.16.10.188\\:3306/am5#'
复制代码

这样?
作者: hl791708501    时间: 2017-04-20 14:16
sed 's/127.0.0.1\\:444\/bb5/172.16.10.188\\:3306\/am5/'  FILENAME

作者: hl791708501    时间: 2017-04-20 14:18
  1. [root@localhost ~]# cat a
  2. HOSTS=http\://127.0.0.1\:444/bb5/xmlrpc
  3. HOSTS=http\://172.16.10.188\:3306/am5/xmlrpc
  4. [root@localhost ~]# sed 's/127.0.0.1\\:444\/bb5/172.16.10.188\\:3306\/am5/' a
  5. HOSTS=http\://172.16.10.188\:3306/am5/xmlrpc
  6. HOSTS=http\://172.16.10.188\:3306/am5/xmlrpc
复制代码

作者: cestbonE    时间: 2017-04-20 14:40
本帖最后由 cestbonE 于 2017-04-20 18:05 编辑

如果 HOSTS=http\://127.0.0.1\:444/bb5/xmlrpc  (属于文本 test.txt)
赋值给变量1,即 arr1="HOSTS=http\://127.0.0.1\:444/bb5/xmlrpc"

HOSTS=http\://172.16.10.188\:3306/am5/xmlrpc  (属于文本 key.txt)
赋值给变量2,即 arr2=“HOSTS=http\://172.16.10.188\:3306/am5/xmlrpc”

再将两个变量进行替换,得怎么办, 变量1是随时可修改的一个,即可以修改它的格式来达到替换目的,但变量2格式是无法修改,需要用什么格式来实现替换呢???求助!!!

我这边是在替换时,echo会过滤掉斜杠\,所以导致了替换失败!! 求大神指点!!!

作者: jason680    时间: 2017-04-20 18:39
回复 5# cestbonE

http://bbs.chinaunix.net/thread-4261616-1-1.html

两个为同一个问题,一次问完...

1. input data/file 输入数据/文件
2. procedure 程序
3. ouput data 输出数据




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