首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用sed HP-UX替换多个文件中的多个HP

使用sed HP-UX替换多个文件中的多个HP
EN

Stack Overflow用户
提问于 2013-11-13 15:03:24
回答 2查看 270关注 0票数 0

有没有人能告诉我如何通过一个命令批量替换多个文件中的i?这个sed命令是做什么的?

代码语言:javascript
复制
sed 's/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/x.x.x.x/g' *

我真的很需要帮助。谢谢!

EN

回答 2

Stack Overflow用户

发布于 2013-11-13 15:34:07

这个sed做的是:

代码语言:javascript
复制
s/pattern1/pattern2/g

pattern2取代pattern1

[0-9]\{1,3\} =来自0-91 to 3数字

\.表示单点.

因此从理论上讲,这应该会将所有文件中的所有IP更改为给定的IP x.x.x.x

*表示此文件夹中的所有文件

所以没有留下原始的IP地址,所以要小心。

PS这不是100%的工作。例如,此编号3452.343.13.34 (不是IP)将更改为3x.x.x.x

票数 1
EN

Stack Overflow用户

发布于 2013-11-13 18:09:22

代码语言:javascript
复制
sed "s/\([12]\{0,1\}[0-9]\{0,1\}[0-9]\.\)\{3\}[12]\{0,1\}[0-9]\{0,1\}[0-9]/x.x.x.x/g"

  1. 如果数字(数字)在之前或之后,它将被忽略,并将内部部分视为IP
  2. 如果出现大于255和小于300的数字,则它们仍被视为IP
  3. IP (如120.008.099.234)

如果这些想法很重要,那么应该构建一个更复杂sed (我认为是级联的),如下所示

代码语言:javascript
复制
sed "s/.*/#&#/;s/\([^0-9.]\)\([012]\{0,1\}[0-9]\{0,1\}[0-9]\.\)\{3\}[12]\{0,1\}[0-9]\{0,1\}[0-9]\([^0-9.]\)/\1x.x.x.x\3/g;s/^#\(.*\)#$/\1/"

(仍然可能是255到300之间的数字)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19947429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档