sed搜索并替换变量字符串

时间:2016-08-08 18:43:43

标签: sed

我正在尝试使用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

1 个答案:

答案 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,则必须进行相应的编辑。