小编tim*_*tim的帖子

如何匹配字符串和下一个空格之前的所有内容

假设我有以下字符串:

sdffsd sfdfi -ip 192.168.1.1 sdfdf ertret 
Run Code Online (Sandbox Code Playgroud)

我想提取“192.168.1.1”或任何其他有效的IP地址(四个十进制数字,每个数字范围从0到255,用点分隔,例如172.16.254.1)

似乎最简单的方法是匹配字符串“-ip”和下一个空格之前(192.168.1.1 和 sdfdf 之间的空格)之间的所有内容。

我试过:

sed -e 's/-s \(.*\)[[:space:]]/\1/'
Run Code Online (Sandbox Code Playgroud)

但它没有用

sed awk text-processing

5
推荐指数
1
解决办法
455
查看次数

如何用数字 2 替换有效网络地址的最后一个八位字节

假设我有一个字符串,可以是任何可能/有效的网络地址,如下所示:

STR="192.168.1.0/24"
Run Code Online (Sandbox Code Playgroud)

我想要做的是将最后一个八位字节(在本例中为 0/24,但可以是任何数字)替换为数字 2,但是我不知道最后一个八位字节可以是什么(不会打印新值) ,所以改变:

192.168.1.0/24
Run Code Online (Sandbox Code Playgroud)

到:

192.168.1.2
Run Code Online (Sandbox Code Playgroud)

无论网络地址是什么,我想用“2”替换最后一个八位字节

注意:检查字符串是否是有效的网络地址并不重要,因为所有正在测试的字符串都被假定为有效的网络地址。

bash sed text-processing

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

sed ×2

text-processing ×2

awk ×1

bash ×1