也想出现在这里? 联系我们

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

作者 : 小编 本文共2732个字,预计阅读时间需要7分钟 发布时间: 2022-10-31 共4.08K人阅读
也想出现在这里? 联系我们

通过使用 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 变量中所包含的字符串可以使用以下的约定来表示:20151127110839429.png (1158×739)

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

标志20151127110905187.png (1081×413)

退出状态该命令返回以下出口值:20151127110922842.png (1092×72)

实例: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、要以单个“#”字符替换 <space> 字符类中的每个字符序列,请输入:

复制代码

代码如下:

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

1. 本站所提供的源码模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: rayer@88.com),我们会及时删除,给您带来的不便,我们深表歉意!
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布投稿,分享有金币奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务 请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长,可领回失去的金币,并额外有奖!
6. 如遇到加密压缩包,默认解压密码为"www.zyfx8.cn",如遇到无法解压的请联系管理员!
本站部分文章、资源来自互联网,版权归原作者及网站所有,如果侵犯了您的权利,请及时联系我站删除。免责声明
资源分享吧 » Linux系统中tr命令删除和替换文本字符的基本用法

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
织梦模板使用说明
你下载的织梦模板并不包括DedeCMS使用授权,根据DedeCMS授权协议,除个人非盈利站点外,均需购买DedeCMS商业使用授权。购买地址: http://www.desdev.cn/service-dedecms.html

发表评论

Copyright 2015-2020 版权所有 资源分享吧 Rights Reserved. 蜀ICP备14022927号-1
开通VIP 享更多特权,建议使用QQ登录