如何使用“sed”命令替换字符串的尾部

问题描述

这是一个这样的路径字符串:

path=/home/test/test.xml

我想改成

path=******

我该怎么办? 我尝试使用“sed”来替换此字符串,但无法按预期工作。

解决方法

如果它只是来自 echo 的字符串,请使用 sed 和正则表达式替换 sed -e 's#PARAM#REPLACEMENT#'

echo 'path=/home/test/test.xml' | sed -e 's#path=.*#path=******#'

如果要在文件中替换此字符串,请添加 -i 标志和文件名:

sed -i -e 's#path=.*#path=******#' file.name

仅供参考 在此示例中,# 分隔符仅用于避免与转义 * 字符混淆。

,
$ echo 'path=/home/test/test.xml'|sed 's@/home/test/test.xml@******@'
path=******

这里的字符 @随机选择的,因为它没有出现在字符串的任何地方。

common 分隔符将是 /,但这需要在路径字符串中进行大量转义。