Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Bash,用tr改变整个单词_Linux_Bash_Terminal_Command_Tr - Fatal编程技术网

Linux Bash,用tr改变整个单词

Linux Bash,用tr改变整个单词,linux,bash,terminal,command,tr,Linux,Bash,Terminal,Command,Tr,我一直在寻找一个解决我的问题的方法,但一直没有找到。我必须使用linuxtr-命令来更改整个单词。 例如,“ala,has”到“ala,has”。 它应该是这样工作的,当我输入“阿拉有一只猫”-“阿拉有一只猫” 但每当我把它送到终点站时,我得到的是:“阿拉有一只猫”。你知道如何使用tr来更改单词的整个部分吗 另外,“alanna没有养猫”应该改为“alanna没有养猫”。恐怕这在tr中是不可能的,因为tr不能限制替换。您收到ala有一个cat,因为首先a替换为a,然后再次替换为a。使用tr时,它

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

但每当我把它送到终点站时,我得到的是:“阿拉有一只猫”。你知道如何使用
tr
来更改单词的整个部分吗


另外,“alanna没有养猫”应该改为“alanna没有养猫”。

恐怕这在
tr
中是不可能的,因为
tr
不能限制替换。您收到
ala有一个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
-comand.

tr
将把一个集合翻译成另一个集合,因此您需要其他的东西,例如
sed
,我知道,但这是我老师给的任务。有什么想法吗?@heemayl没错,我就是这么想的。好的,非常感谢你的例子。我想我会去问我的老师他到底在想什么。@ninigi是的,因为它看起来确实很奇怪。它是否被指定使用
tr
?老实说,我不确定了。