Bash,用tr改变整个单词

时间:2016-04-03 12:07:52

标签: linux bash terminal command tr

我一直在寻找解决问题的方法已经有一段时间了,而且无法找到它。我必须使用linux tr - 命令来改变整个单词。 例如," ala,有"到" Ala,Has"。
它应该像那样工作,当我输入" ala有一只猫" - " Ala有一只猫"。

但是每当我把它传递到终端时我得到的是:" ala有一只猫"。有关如何使用tr更改单词的整个部分的任何想法?

另外"阿兰娜还没有一只猫#34;应该换成" Alanna Hasn没有猫#34;。

1 个答案:

答案 0 :(得分:0)

我担心tr无法做到这一点,因为tr无法限制替换。您收到ala Has a cat,因为第一个a已替换为A,然后再次被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 - 命令。