带有GNU bash版本4.4.0的Ubuntu 16.04
我需要发布dmesg,但在此之前,我想删除所有目标ips 并将它们替换为xxx.xxx.xxx.xxx
前3个八位位组相同,但最后一个八位位组却不同:
示例:DST = 123.12.12.145
sed -i 's/DST=123.12.12.???/DST=xxx.xxx.xxx.xxx/g' filename
答案 0 :(得分:3)
您可以使用
sed -i -E 's/DST=123\.12\.12\.[0-9]{1,3}/DST=xxx.xxx.xxx.xxx/g' file
请注意,如果您需要匹配文字点,则应转义.
个字符。
[0-9]{1,3}
兼容POSIX ERE的模式(已启用-E
)将匹配1、2或3位数字。
要确保您只匹配末尾的3位数字,然后再匹配其他数字,并且确保匹配DST
而不匹配ADST
,则可以尝试添加单词边界{{1 }}和\<
:
\>