我正在尝试使用sed搜索并替换Mac终端上的文件中的字符串。我能够搜索并替换一个简单的字符串:
sed -i.bak 's/HOSTS/BOASTS/g' file.txt
但我正在尝试一些更复杂的东西,基本上我要替换的字符串看起来像'HOSTS:“123.123.123.123,12345”' - 123.123.123.123
是一个变量IP所以我不能完全搜索它,所以我试图使用正则表达式,主要是“。”表示我不知道IP地址是什么。
我试过以下但没有运气:
sed -i.bak 's/HOSTS:"., 00000"/HOSTS:"999.999.999.999, 00000"/g' file.txt
答案 0 :(得分:1)
您可以尝试以下方法:
echo "HOSTS:\"123.123.123.123, 12345\"" | sed -e 's/[0-9][0-9][0-9]\.[0-9][0-9][0-9]\.[0-9][0-9][0-9]\.[0-9][0-9][0-9]/999.999.999.999/g'.
每个[0-9]
将查找一个数字,每个\.
是实际符号,而不是sed上的“匹配字符”符号。这假设IP将始终具有此结构。如果您正在处理xxx.xxx.xxx.xxx:xxxx
,则必须进行相应的编辑。