使用 tr 命令在 shell 中将确切的单词替换为另一个单词

使用 tr 命令在 shell 中将确切的单词替换为另一个单词

我想用文本文件中的另一个单词替换一个单词。

文件.txt:

alireza fallah

我的代码:

cat file.txt | tr ali ALI

但我明白这一点:

ALI fALLAh

它将所有 'a' 替换为 'A' ,将 'l' 替换为 'L' ,将 'i' 替换为 'I' 。

有什么方法可以将 'ali' 替换为 'ALI' 吗?

答案1

使用 GNU 可以更轻松地完成此任务sed

$ sed -i 's/ali/ALI/' file.txt

因为tr运行于字符集而不是字符串

为了避免在回显时出现不必要的替换,请尝试指定要替换的单词的确切位置和/或仅与您感兴趣的字符串匹配的正则表达式:

$ printf "cali\nali\nwali\nmali.\n" | grep -E '^ali' | tr ali ALI
ALI

相关内容