我试图替换属性文件中的一行文本。
例如:

food.type=banana

有了这一行代码,我可以用另一个输入来完全替换香蕉。
FOOD=apple
sed "s/food.type=.*/food.type=$FOOD/"

输出:
food.type=apple

然而,当我试图替换的前一行文本中有一个/时,我无法让替换工作。
例如:
food.type=/yellow/banana

任何帮助都非常感谢。谢谢!

最佳答案

斜线被解读为结束reg ex match/substitute模式,

sed "[email protected]=.*@food.type=$FOOD@"

有些sed要求转义非标准分隔符的第一个实例,即
sed "s\@food.type=.*@food.type=$FOOD@"

我希望这能有帮助。

关于bash - Bash-sed替换文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10689369/

10-13 05:49