替换文件中的单词

替换文件中的单词

假设该单词必须在由句子(而不是单词列表)组成的文件中child替换为。son

它不是直弦的替代品;例如,不应发生以下情况:

children不应更改为sonren

但应该发生以下情况:

child.应该改为son.

child!应该改为son!

基本上,要替换的文本必须是独立的单词,并且必须保留单词分隔符。

如何在不对每个可能的单词分隔符进行硬编码的情况下完成此操作?

答案1

你可以通过以下方式实现这一点sed命令:

sed -i 's/\<child\>/son/' /path/to/your/file

-i[后缀], --in-place[=后缀]

就地编辑文件(如果提供扩展名,则进行备份)。默认操作模式是断开符号链接和硬链接。这可以通过 --follow-symlinks 和 --copy 进行更改。


考虑您的示例,使用以下测试文件:

child
child.
child!
children

运行命令你会得到:

son
son.
son!
children

编辑: 要管理同一行上多次出现该单词的情况child,您必须g在命令中添加: sed -i 's/\<child\>/son/g' /path/to/your/file

相关内容