在 Linux 中使用 tr 操作字符串
评论 0
浏览 0
2019-09-27
1.概述
在本教程中,我们将看到如何在Linux中使用tr来操作字符串。
请注意,我们用Bash测试了这些命令,但应该可以在任何符合POSIX标准的终端上工作。
2.小写到大写
首先,让我们看看命令的概要以及如何使用该工具的预定义SET。
tr [OPTION]... SET1 [SET2]
其中SET1和SET2各代表一个字符集,[]内的参数意味着它是可选的。tr命令通常与管道结合使用,以便处理标准输入并获得经过处理的标准输出。
在这种情况下,让我们将一个字符串从小写字母转换为大写字母。
echo "Baeldung is in the top 10" | tr [a-z] [A-Z]
命令的输出将是:。
BAELDUNG IS IN THE TOP 10
3.将空白处翻译成制表符
我们可以用tr 尝试的另一个选项是将所有的空白出现翻译成制表符,继续使用相同的例子,但为此目的做了一点调整。
echo "Baeldung is in the top 10" | tr [:space:] '\t'
然后我们就会得到翻译好的字符串。
Baeldung is in the top 10
4.删除字符
假设我们使用的是Linux终端,我们有一个字符串“Baeldung在前10名”,我们想删除所有出现的字符“e”。我们可以通过指定-d 参数和我们想从短语中删除的字符来轻松做到这一点。
echo "Baeldung is in the top 10" | tr -d 'e'
而我们的结果是:。
Baldung is in th top 10
此外,我们还可以通过将多个字符放在一个集合中来删除它们。比方说,我们想删除所有的元音。
echo "Baeldung is in the top 10" | tr -d 'aeiou'
让我们检查一下输出结果。
Bldng s n th tp 10
现在,设想我们想删除短语中出现的所有数字。我们可以通过使用相同的-d参数加上对数字集的引用来做到这一点。
echo "Baeldung is in the top 10" | tr -d [:digit:]
再一次,我们可以看到该命令的输出结果。
Baeldung is in the top
5.互补集
我们也可以对tr给我们的任何一个集合进行补足。
让我们继续前面删除元音的例子。如果我们不删除元音,而是想做相反的操作--也就是互补操作--我们只需要添加-c参数,这就会有效果。
echo "Baeldung is in the top 10" | tr -cd 'aeiou'
现在,输出结果将是删除除元音以外的所有字符。
aeuiieo
6.结语
在这个快速教程中,我们看了在Bash shell中使用tr来操作字符串是多么的容易。
更多信息,请查看网上的tr man页面,或在终端键入man tr 。
0 个评论