试图让这个工作一段时间而不是真正得到它.
基本上,我有一个IP地址的文件每天或多或少地改变.该文件只包含一个IP地址,这是我试图用我疯狂的grepping替换以找到我当前的内部IP.
基本上,我有一个IP地址的文件每天或多或少地改变.该文件只包含一个IP地址,这是我试图用我疯狂的grepping替换以找到我当前的内部IP.
我有这个
#!/bin/sh
newip=$(ifconfig | grep 0xfff | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' | grep -v 255)
echo $newip
sed 's/*\.*\.*\.*/"$newip"/g' log.txt > logmod.txt
但它不匹配和替换.
我不熟悉sed,我也是regexps的初学者.
任何帮助都是极好的!
谢谢 :)
如果您的sed版本支持扩展正则表达式(-r选项),您可以执行类似这样的操作(类似于您在grep语句中的操作).另请注意$newip在单引号之外,以允许shell替换它.
sed -r 's/(\b[0-9]{1,3}\b'/$newip/
顺便说一下,这个解决方案仍然匹配不代表IP地址的字符串.有关更复杂的解决方案,请参阅IP地址下的this site.