千家信息网

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

发表于:2024-11-14 作者:千家信息网编辑
千家信息网最后更新 2024年11月14日,本篇内容介绍了"Linux系统中tr命令删除和替换文本字符的使用方法"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,
千家信息网最后更新 2024年11月14日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安全错误 数据库的锁怎样保障安全 mybatis迁移数据库 青浦区创新数据库服务商收费标准 网络安全教育培训宣传情况 人民评论员文章网络安全 广电网络技术部的职责 德温特数据库中专利号的含义 单位开展网络安全岗位培训 数据库应用系统技术电子版 c 数据库 批量更新数据库 江西综合软件开发品牌 上海宜通网络技术中心 河北小型软件开发技术 服务器远程访问如何设置 软件开发项目管理要点 纸箱切割软件开发 成都西线软件开发有限公司 数据库的常见故障可分为 服务器网络拓扑 金山区咨询软件开发报价表 找出网络安全的薄弱点 数据库异常请联系 南充珊瑚互联网科技有限公司 软件开发工程师的所需能力 网络安全内容简介 圆通数据库密码丢失 数据库表主键一般叫 电子信息工程跟计算机网络技术 写出数据库创建语法格式 石家庄万道网络技术集团 销售数据库建立的意义
0