在 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

最后更新2022-11-28
0 个评论
标签