用TR操纵Linux中的字符串
Contents
1. 概述
在本教程中,我们将了解如何在 Linux 中使用tr 操作字符串。
请注意,我们已经使用 Bash 测试了这些命令,但应该可以在任何符合 POSIX 的终端上运行。
2. 小写转大写
首先,让我们看一下命令的概要以及如何使用该工具的预定义 SET。
tr [OPTION]... SET1 [SET2]
其中 SET1 和 SET2 分别代表一组字符, [] 内的参数表示它是可选的。tr命令通常与管道结合使用,以操作标准输入并获得处理后的标准输出。
在这种情况下,让我们将字符串从小写转换为大写:
echo "Blogdemo is in the top 10" | tr [a-z] [A-Z]
该命令的输出将是:
BLOGDEMO IS IN THE TOP 10
3. 将空格转换为制表符
我们可以尝试使用tr的另一个选项是将所有出现的空格转换为 tabs,继续使用相同的示例,但为此目的进行了一些调整:
echo "Blogdemo is in the top 10" | tr [:space:] '\t'
我们将得到翻译后的字符串:
Blogdemo is in the top 10
4.删除字符
假设我们使用的是 Linux 终端,我们有字符串“Blogdemo is in the top 10”,我们想删除所有出现的字符“e”。我们可以通过指定*-d*参数和我们要从短语中删除的字符轻松地做到这一点:
echo "Blogdemo is in the top 10" | tr -d 'e'
我们的结果是:
Blogdmo is in th top 10
此外,我们可以通过将它们全部放在一个集合中来删除多个字符。假设我们要删除所有元音:
echo "Blogdemo is in the top 10" | tr -d 'aeiou'
让我们检查一下输出:
Blgdm s n th tp 10
现在,假设我们要删除短语中出现的所有数字。我们可以通过使用相同的*-d*参数加上对数字集的引用来做到这一点:
echo "Blogdemo is in the top 10" | tr -d [:digit:]
再次,我们可以看到命令的输出:
Blogdemo is in the top
5. 补集
我们还可以补充tr给我们的任何集合。
让我们继续前面删除元音的例子。如果我们不想删除元音,而是想做相反的事情——即互补操作——我们只需要添加*-c*参数就可以了:
echo "Blogdemo is in the top 10" | tr -cd 'aeiou'
现在输出将是删除除元音以外的所有字符:
oeoiieo