Bash, change whole word with tr



我一直在寻找解决问题的方法,但找不到。我必须使用linux tr-命令来更改整个单词。例如,"ala,has"到"ala,has"
它应该是这样工作的,当我键入"阿拉有一只猫"-"阿拉有猫"。

但每当我把它传给终点站时,我得到的是:"阿拉有一只猫"。你知道如何用tr改变单词的整个部分吗?

"阿兰娜没有猫"也应该改为"阿兰娜没猫"。

恐怕tr不可能做到这一点,因为tr无法限制替换。您收到ala Has a cat是因为第一个aA替换,然后又被a替换。有了tr,它可能看起来像:

echo "ala has a cat" | tr -ts "'[a]' '[h]'" "'[A]' '[H]'"
AlA HAs A cAt

但正如我所说,tr替换或删除了多个字符。有关更多信息,请参阅Linux中的手册页man tr

但是,您想要的可以通过sed实现。给你:

echo "ala has a cat" | sed -e 's/a/A/' -e 's/h/H/'
Ala Has a cat

-e选项添加了更多的sed操作数,有点像逻辑AND。在末尾添加/g相当于tr命令。

最新更新