使用 sed 命令替换

Posted

技术标签:

【中文标题】使用 sed 命令替换【英文标题】:using sed command subtitution 【发布时间】:2022-01-10 10:17:58 【问题描述】:

如何在 sed 命令中只替换特定值

例如,

Linux system
Windows syste
Mac    syste

我试过这个命令

sed 's/syste/system/g' 文件.txt

safwanpaloli@hello:~/linx$ sed 's/syste/system/g' new.txt 
Linux systemm
Windows system
Mac   system

我预期的结果

Linux system
Windows system
Mac   system

【问题讨论】:

【参考方案1】:

试试sed 's/system/syste/g;s/syste/system/g' new.txt

【讨论】:

好的,这是迄今为止最疯狂的解决方案。 嗯,这绝对是 POSIX 兼容的,我不需要考虑非 GNU sed 是否支持 \b\? 最简单的解决方案可能是:sed -e 's/syste$/system/' file 我同意,对于 OP 的输入,syste 总是出现在行尾。【参考方案2】:

你可以试试这个sed,它将匹配最后一个单词并替换为system

$ sed 's/[a-zA-Z]*$/system/g' input_file
Linux system
Windows system
Mac   system

【讨论】:

【参考方案3】:

也替换 m,但前提是它存在。

sed 's/system\?/system/g'

【讨论】:

以上是关于使用 sed 命令替换的主要内容,如果未能解决你的问题,请参考以下文章

使用 sed 命令替换

如何用sed命令替换一行中的某个字符串

sed 替换命令使用

sed命令在文件中替换、插入

sed 命令复制替换两次

Linux命令-Sed