Linux TR 命令示例

举报
Tiamo_T 发表于 2022/07/14 19:31:40 2022/07/14
【摘要】 tr 是一个用于翻译、删除或压缩重复字符的 UNIX 实用程序。它将从 STDIN 读取并写入 STDOUT。

tr 是一个用于翻译、删除或压缩重复字符的 UNIX 实用程序。它将从 STDIN 读取并写入 STDOUT。

tr 代表翻译。

句法

tr 命令的语法是:

$ tr [选项] SET1 [SET2]

翻译

如果同时指定了 SET1 和 SET2 且未指定 '-d' OPTION,则 tr 命令会将 SET1 中的每个字符替换为 SET2 中相同位置的每个字符。

1. 小写转大写

以下 tr 命令用于将小写转换为大写

$ tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
tiamo
TIAMO

以下命令还将小写转换为大写

$ tr [:lower:] [:upper:]
tiamo
TIAMO

您还可以在 tr 中使用范围。以下命令使用范围将小写转换为大写。


$ tr a-z A-Z
tiamo
TIAMO

2.将大括号翻译成括号

您还可以在文件之间进行翻译。在这个例子中,我们将翻译一个带括号的文件中的大括号。

$ tr '{}' '()' < inputfile > outputfile

上述命令将从“inputfile”中读取每个字符,如果是大括号则进行翻译,并将输出写入“outputfile”。

3. 将空白转换为制表符

以下命令会将所有空格转换为制表符

$ echo "This is for testing" | tr [:space:] '\t'
This	is	for	testing

4. 使用 -s 压缩重复字符

在示例 3 中,我们看到了如何使用制表符转换空格。但是如果连续出现两个以上的空格,那么前面的命令会将每个空格转换为一个制表符,如下所示。

$ echo "This   is   for testing" | tr [:space:] '\t'
This			is			for	testing

我们可以使用 -s 选项来压缩字符的重复。

$ echo "This   is   for testing" | tr -s [:space:] '\t'
This	is	for	testing

同样,您可以使用单个空格转换多个连续空格

$ echo "This  is  for testing" | tr -s [:space:] ' '
This is for testing

5.使用-d选项删除指定字符

tr 也可用于使用 -d 选项删除特定字符。

$ echo "the hgst tiamo" | tr -d 't'
he hgst tiamo

要从字符串中删除所有数字,请使用

$ echo "my username is 432234" | tr -cd [:digit:]
432234

此外,如果您想从文件中删除行,可以使用sed d 命令

6. 使用 -c 选项补充集合

您可以使用 -c 选项补充 SET1。例如,要删除除数字以外的所有字符,您可以使用以下命令。

$ echo "我的用户名是 432234" | tr -cd [:数字:]
432234

7.从文件中删除所有不可打印的字符

以下命令可用于从文件中删除所有不可打印的字符。

$ tr -cd [:print:] < file.txt

8. 将文件中的所有行合并为一行

下面的命令会将所有换行符转换为空格并将结果作为单行。

$ tr -s '\n' ' ' < file.txt
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。