千家信息网

Linux系统中tr命令删除和替换文本字符的使用方法

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,本篇内容介绍了"Linux系统中tr命令删除和替换文本字符的使用方法"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,
千家信息网最后更新 2026年11月04日Linux系统中tr命令删除和替换文本字符的使用方法

本篇内容介绍了"Linux系统中tr命令删除和替换文本字符的使用方法"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

通过使用 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
表达字符串的特殊序列

String1 和 String2 变量中所包含的字符串可以使用以下的约定来表示:

如果某个字符在 String1 中被指定过多次,则该字符就被转换成 String2 中为与 String1 中最后出现的字符相对应的字符。
如果由 String1 和 String2 指定的字符串长度不相同,则 tr 命令就会忽略较长一个字符串中的多余字符。

标志

退出状态
该命令返回以下出口值:

实例:
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" > new_file


10、把路径变量中的冒号":",替换成换行符"\n"

代码如下:


# echo $PATH | tr -s ":" "\n"

11、若要将大括号转换为小括号,请输入:

代码如下:


tr '{}' '()' < textfile > newfile


这便将每个 {(左大括号)转换成 ((左小括号),并将每个 }(右大括号)转换成 )(右小括号)。所有其它的字符都保持不变。

12、若要将大括号转换成方括号,请输入:

代码如下:


tr '{}' '\[]' < textfile > newfile


这便将每个 {(左大括号)转换成 [(左方括号),并将每个 }(右大括号)转换成 ](右方括号)。左方括号必须与一个 "\"(反斜扛)转义字符一起输入。

13、若要将小写字符转换成大写,请输入:

代码如下:


tr 'a-z' 'A-Z' < textfile > newfile

14、若要创建一个文件中的单词列表,请输入:

代码如下:


tr -cs '[:lower:][:upper:]' '[\n*]' < textfile > newfile


这便将每一序列的字符(除大、小写字母外)都转换成单个换行符。*(星号)可以使 tr 命令重复换行符足够多次以使第二个字符串与第一个字符串一样长。

15、若要从某个文件中删除所有空字符,请输入:

代码如下:


tr -d '\0' < textfile > newfile

16、若要用单独的换行替换每一序列的一个或多个换行,请输入:

代码如下:


tr -s '\n' < textfile > newfile


或

代码如下:


tr -s '\012' < textfile > newfile

17、若要以"?"(问号)替换每个非打印字符(有效控制字符除外),请输入:

代码如下:


tr -c '[:print:][:cntrl:]' '[?*]' < textfile > newfile


这便对不同语言环境中创建的文件进行扫描,以查找当前语言环境下不能打印的字符。

18、要以单个"#"字符替换 字符类中的每个字符序列,请输入:

代码如下:


tr -s '[:space:]' '[#*]'

"Linux系统中tr命令删除和替换文本字符的使用方法"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

字符 字符串 代码 括号 输入 文件 字母 命令 序列 小写 内容 大写 换行符 格式 控制 使用方法 文本 方法 不同 有效 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州淘业互联网络科技 深圳九邦互联网科技有限公司 互联网金融公司科技 紫鲸互联网科技 科技创新互联网企业 互联网科技logo设计 互联网科技logo 顺玮阁互联网科技 天下捷融互联网科技 人人互联网科技是培训 昭通互联网科技选哪家 苏州五指互联网络科技有限 广州市恰铎互联网科技有限公司 开一家科技互联网公司需要多少钱 世界互联网领先科技成果获奖 上海京穆互联网科技有限公司 山东子淼互联网科技有限公司 南通创西澳互联网科技有限公司 北京瑞云互联网科技有限公司 银川新华互联网科技学校招聘 科技互联网龙头 礼当家互联网科技 奇酷互联网络科技 智慧科技互联网 宝灵互联网科技有限公司 互联网科技公司营业执照怎么办理 皮皮虾互联网科技有限公司 世界互联网科技成果奖 科技美学互联网 艺术 小牛互联网科技有限公司地址
0