通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能。您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符。您也可以用它来除去重复字符。这就是所有 tr 所能够做的。
tr用来从标准输入中通过替换或删除操作进行字符转换。tr主要用于删除文件中控制字符或进行字符转换。使用tr时要转换两个字符串:字符串1用于查询,字符串2用于处理各种转换。tr刚执行时,字符串1中的字符被映射到字符串2中的字符,然后转换操作开始。
一.带有最常用选项的tr命令格式为:
tr -c -d -s ["string1_to_translate_from"] ["string2_to_translate_to"] < input-file
这里:
-c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。
-d 删除字符串1中所有输入字符。
-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。
input-file是转换文件名。虽然可以使用其他格式输入,但这种格式最常用。
二.字符范围
指定字符串1或字符串2的内容时,只能使用单字符或字符串范围或列表。
[a-z] a-z内的字符组成的字符串。 [A-Z] A-Z内的字符组成的字符串。 [0-9] 数字串。 \octal 一个三位的八进制数,对应有效的ASCII字符。 [O*n] 表示字符O重复出现指定次数n。因此[O*2]匹配OO的字符串。 tr中特定控制字符的不同表达方式 速记符含义八进制方式 \a Ctrl-G 铃声\007 \b Ctrl-H 退格符\010 \f Ctrl-L 走行换页\014 \n Ctrl-J 新行\012 \r Ctrl-M 回车\015 \t Ctrl-I tab键\011 \v Ctrl-X \030
三.实例
1.将文件file中出现的"abc"替换为"xyz"
# cat file | tr "abc" "xyz" > new_file
【注意】这里,凡是在file中出现的"a"字母,都替换成"x"字母,"b"字母替换为"y"字母,"c"字母替换为"z"字母。而不是将字符串"abc"替换为字符串"xyz"。
2.使用tr命令“统一”字母大小写
(小写 --> 大写)
# cat file | tr [a-z] [A-Z] > new_file
(大写 --> 小写)
# cat file | tr [A-Z] [a-z] > new_file
3.把文件中的数字0-9替换为a-j
# cat file | tr [0-9] [a-j] > new_file
4.删除文件file中出现的"Snail"字符
# cat file | tr -d "Snail" > new_file
【注意】这里,凡是在file文件中出现的'S','n','a','i','l'字符都会被删除!而不是紧紧删除出现的"Snail”字符串。
5.删除文件file中出现的换行'\n'、制表'\t'字符
# cat file | tr -d "\n\t" > new_file
不可见字符都得用转义字符来表示的,这个都是统一的。
6.删除“连续着的”重复字母,只保留第一个
# cat file | tr -s [a-zA-Z] > new_file
7.删除空行
# cat file | tr -s "\n" > new_file
8.删除Windows文件“造成”的'^M'字符
# cat file | tr -d "\r" > new_file
或者
# cat file | tr -s "\r" "\n" > new_file
【注意】这里-s后面是两个参数"\r"和"\n",用后者替换前者
9.用空格符\040替换制表符\011
# cat file | tr -s "\011" "\040"
相关推荐
《Linux命令详解手册》是一份全面的Linux命令参考资料,它详细介绍了Linux系统中广泛使用的一系列命令,覆盖了系统管理、系统设置、文档编辑以及压缩备份等多个方面。为了方便用户查阅,该手册按照命令的功能进行了...
Linux命令详解手册是一份关于Linux操作系统下各种命令的权威指南,涵盖了系统管理、系统设置、文档编辑和压缩备份等众多方面的命令。这份手册详细列举并解释了每个命令的用途和使用方法,是Linux用户管理和维护系统...
Linux命令详解手册是一本适合Linux新手和有一定基础的用户深入学习Linux命令的指南。它详细介绍了大量的Linux命令,涵盖了系统管理、系统设置、文档编辑以及压缩备份等多个方面的操作。掌握这些命令对于理解和使用...
Linux tr命令 Linux tr 命令用于转换或删除文件中的字符。 tr 指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。 语法 tr [-cdst][--help][--version][第一字符集][第二字符集] tr ...
Linux shell tr 命令详解 1. 用途 tr,translate的简写,主要用于压缩重复字符,删除文件中的控制字符以及进行字符转换操作。 2. 语法 tr [OPTION]... SET1 [SET2] 3. 参数 3.1 -s 压缩重复字符 -s: squeeze-...
### Linux tr命令详解 #### 一、命令简介 `tr` 命令在Linux系统中主要用于字符替换、压缩和删除。它能够将一组字符转换为另一组字符,或者删除某些字符,是一种非常实用的文本处理工具。由于其功能强大且简洁,常...
本资源"Linux命令大全"包含了516个Linux命令的详细资料,对于学习和理解Linux操作系统至关重要。下面,我们将深入探讨这个资源中涉及的一些关键知识点。 1. **命令手册**: - 在Linux世界中,命令手册(man pages...
Linux网络设备管理命令详解.pdf Linux网络设备管理命令详解.pdf是一份关于Linux操作系统中网络设备管理命令的详细介绍。该文档主要讲解了Linux网络设备管理命令的使用方法和实践操作。 Linux操作系统是基于网络...
Linux命令详解涉及到Linux系统管理、系统设置、文档编辑以及压缩备份等多个方面,下面将详细说明这些知识点。 1. Linux系统管理命令 Linux系统管理命令主要用于对系统用户、进程、服务等进行管理。例如: - ...
tr命令用于字符转换和删除。例如,将文件中的所有大写字母转换为小写: ```bash tr '[:upper:]' '[:lower:]' ``` 这些命令结合使用,能实现强大的文本处理功能。了解并熟练掌握它们,将使你在处理Linux系统的文本...
traceroute我们可以知道信息从你的计算机到互联网另一端...常见命令参数 Options: -4 Use IPv4 -6 Use IPv6 -d --debug Enable socket level debugging -F --dont-fragment Do not fragment packets -f first_ttl
本篇文章将深入解析Linux中的"skill"命令及其使用方法,同时也会提及相关的"expr"和"tr"命令。 "skill"命令允许用户向运行中的进程发送信号,以控制它们的行为。默认情况下,它发送的信号是TERM(终止),但也可以...
### Linux系统命令及其使用详解 #### 一、时间与日期管理 - **date**:用于打印或设置系统的时间和日期。此命令可以帮助用户快速获取当前系统时间或进行手动调整。 #### 二、终端交互 - **stty -a**:查看终端...
### Linux运维命令详解 #### 一、线上查询及帮助命令 **1. man** - **命令**: `man [命令]` - **功能说明**: 查看命令的手册页,提供详细的命令使用方法。`man` 是 Linux 中最常用的帮助文档查看工具之一。除了 `...
Linux系统管理与设置命令详解 Linux系统管理命令包括但不限于用户管理、系统状态查询、进程控制、系统维护和网络服务等方面。例如: - adduser:用于添加新用户。 - chfn:更改用户信息。 - chsh:更改用户的shell...
在Linux操作系统中,掌握一些基础的命令行工具对于日常管理和维护至关重要。`sort`、`uniq`和`tr`...在日常的Linux系统管理中,这些命令是不可或缺的工具,无论是数据分析、日志分析还是脚本编程,都能发挥重要作用。
### Linux文本处理命令合集详解 #### diff/patch:查找/修补文本差异 - **diff** 命令用于比较两个文件之间的不同之处。 - `diff version1.txt version2.txt`:简单地列出两个文件之间的不同行。 - `diff -u ...
Linux mattrib命令 Linux mattrib命令用来变更或显示MS-DOS文件的属性。 mattrib为mtools工具指令,模拟MS-DOS的attrib指令,可变更MS-DOS文件的属性。 语法 mattrib [-a|+a] [-h|+h] [-r|+r] [-s|+s] [-/] [-X] ...