假设该单词必须在由句子(而不是单词列表)组成的文件中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