一段时间以来,我一直在寻找解决问题的方法,但一直找不到。我必须使用 linux tr
-command 来改变整个单词。
例如,“ala, has”到“Ala, Has”。
它应该像这样工作,当我输入“ala has a cat”时 - “Ala Has a cat”。
但是每当我将它传递给终端时,我得到的是:“ala Has a cat”。关于如何使用 tr
更改单词的整个部分有什么想法吗?
“alanna hasn't got a cat”也应该改为“Alanna Hasn't got a cat”。
最佳答案
恐怕这对 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
操作数,类似于逻辑与。在末尾添加 /g
等同于 tr
命令。
关于linux - Bash,用 tr 改变整个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36385196/