【问题标题】:replace specific ip address using sed? [duplicate]使用 sed 替换特定的 IP 地址? [复制]
【发布时间】:2016-05-04 23:05:27
【问题描述】:

我想将一个特定的 IP 替换为另一个,所以说 localhost 为 0.0.0.0

sed -i -e 's/localhost/0.0.0.0/g' 似乎不起作用

也试过sed -i -e 's/localhost/0\.0\.0\.0/g'也不行

sed: RE 错误:非法字节序列

【问题讨论】:

  • 你的数据是什么样的?
  • 我有一个包含一堆“localhost”的文件,我想用“0.0.0.0”替换它们
  • @user1870400 你的文件有一堆localhost 还是一堆ip=localhost?它有所作为。如果您想要好的答案,您应该包含一个给您带来麻烦的输入文件的简短示例。
  • 感谢您的提问。它是一堆本地主机
  • @user1870400 你不需要转义. 来代替。看起来像语言环境问题。执行export LC_ALL=C,按回车,然后再次尝试您的命令。

标签: linux sed


【解决方案1】:

你的例子对我来说似乎很好。鉴于以下test.txt

ip=localhost

以下将整个ip=localhost替换为0.0.0.0

sed -i -e 's/ip=localhost/0\.0\.0\.0/g' test.txt

如果您只想替换 localhost 部分:

sed -i -e 's/localhost/0\.0\.0\.0/g' test.txt

将为您提供以下内容:

 ip=0.0.0.0

【讨论】:

  • 我想用 0.0.0.0 替换每个具有 localhost 的文件,并且它说 Sed ERR 非法字节序列与我尝试过的所有文件。查找 ./ -type f -exec sed -i -e 's/ip=localhost/0\.0\.0\.0/g' {} \;并找到 ./ -type f -exec sed -i -e 's/localhost/0\.0\.0\.0/g' {} \;
  • 你原来的问题没有提到这个发现。您需要在问题中包含所有相关信息。您可以更新您的问题或开始一个新问题。
猜你喜欢
  • 1970-01-01
  • 2011-07-13
  • 2018-04-23
  • 2018-02-12
  • 2012-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多