使用 Sed 替换后面没有字符串的字符串

使用 Sed 替换后面没有字符串的字符串

我正在寻找一个 sed 脚本,当文件内容中某个字符串后面没有字符串时,用该脚本替换该字符串。

目前我正处于这种方法

sed -i -E "s/${filehash}(?!.de)/${filehash}.de/g" "index.html";

脚本应该将 filehash 替换为文件哈希.de 时(如果其后没有 .de)。

目前脚本失败,原因如下:

sed: -e expression #1, char 55: Invalid preceding regular expression

我正在 Ubuntu 上尝试这个。

答案1

不支持前瞻正则表达式语法 Sed 正则表达式语法

我看不出在上面的语法中写“not regexp”的方法,因此您可能需要将其分解为几个操作:

  1. filehash.dewhatever
  2. filehashfilehash.de
  3. whateverfilehash.de

相关内容