sed 替换指定字符串之前的内容 不在行首
时间: 2023-09-13 08:05:26 浏览: 127
替换文件指定字符串
如果要替换指定字符串之前的内容,但是该字符串不在行首,可以使用sed命令的正则表达式中的"lookbehind"语法。"lookbehind"语法用于匹配在指定字符串之前的内容,但不包括该字符串本身。
例如,假设我们要将文件中所有以"Hello"开头的单词替换为"Hi",但是"Hello"可能出现在单词的中间或末尾,可以使用以下命令:
```
sed 's/\b\(\w*\)Hello/\1Hi/g' filename
```
其中,"\b"表示单词边界,"\(\w*\)"表示匹配前面的单词并将其保存到一个分组中,"Hello"表示要替换的字符串。这个命令会将所有以"Hello"开头的单词替换为"Hi"。
阅读全文