Linux tr命令

介绍

tr命令可以对来自标准输入的字符进行替换、压缩和删除。它可以将一组字符变成另一组字符。

语法

tr [OPTION]... SET1 [SET2]

注意:SET2是可选项

OPTION:

不带参数:将SET2中的每个字符替换SET1中的每个字符,字符是顺序替换,如果SET1的字符长度大于SET2,那么将SET1中多出来的字符用SET2中的最后一个字符替换。
-t:将SET2中的每个字符替换SET1中的每个字符,字符字符顺序1对1替换,无论SET1还是SET2哪个长,只替换对应的字符,多出的不替换。
-c:将SET1中指定的字符之外的字符替换成SET2中指定的字符,如果SET2包含多个字符只用最后一个字符来替换。
-d:删除SET1中指定的字符,这里没有SET2
-s:将SET1中指定的连续的连续重复的字符用单个字符替代。

字符集代码:

[:alnum:]:字母和数字,可以用来替代‘a-zA-Z0-9‘
[:alpha:]:字母,可以用来替代‘a-zA-Z‘
[:cntrl:]:控制(非打印)字符
[:digit:]:数字,可以用来替代‘0-9‘
[:graph:]:图形字符
[:lower:]:小写字母,可以用来替代‘a-z‘
[:print:]:可打印字符
[:punct:]:标点符号
[:space:]:空白字符
[:upper:]:大写字母,可以用来替代‘A-Z‘
[:xdigit:]:十六进制字符
  \\        反斜杠
  \a        终端鸣响
  \b        退格
  \f        换页
  \n        换行
  \r        回车
  \t        水平制表符
  \v        垂直制表符  \0        null字符

示例:

1.不带参数将SET2替换SET1替换,且SET1长度大于SET2

[root@localhost ~]# echo "aaAA1bbBB2ccCC3" | tr ‘abc‘ ‘12‘
11AA122BB222CC3

a被替换成1,b被替换成2,c被替换成2

2.不带参数将SET2替换SET1替换,且SET1长度小于SET2

[root@localhost ~]# echo "aaAA1bbBB2ccCC3" | tr ‘ab‘ ‘123‘
11AA122BB2ccCC3

a被替换成1,b被替换成2

3.-t参数

[root@localhost ~]# echo "aaAA1bbBB2ccCC3" | tr -t ‘abc‘ ‘12‘
11AA122BB2ccCC3
[root@localhost ~]# echo "aaAA1bbBB2ccCC3" | tr -t ‘ab‘ ‘123‘
11AA122BB2ccCC3

都是a被替换成1,b被替换成2

4.删除指定字符,-d

[root@localhost ~]# echo "aaAA1bbBB2ccCC3" | tr -d ‘a-z‘
AA1BB2CC3
[root@localhost ~]# echo "aaAA1bbBB2ccCC3" | tr -d -c ‘a-z\n‘
aabbcc

第一个是删除小写字符,第二个是删除小写字符之外的其它字符, 下面这种使用字符集的效果是一样的。

[root@localhost ~]# echo "aaAA1bbBB2ccCC3" | tr -d ‘[:lower:]‘
AA1BB2CC3
[root@localhost ~]# echo "aaAA1bbBB2ccCC3" | tr -d -c ‘[:lower:]\n‘
aabbcc

5.替换连续字符,-s

[root@localhost ~]# echo "aaAA1bbBB2ccCC3" | tr -s ‘a-zA-Z‘
aA1bB2cC3
[root@localhost ~]# echo "aaAA1bbBB2ccCC3" | tr -s ‘[:alnum:]\n‘
aA1bB2cC3

上面两种方法都是将重复的多个字符替换成单个字符

其它用法:将null字符用换行符替代

[root@localhost ~]# cat /proc/4518/environ \n
TERM=xtermPATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/mysql/binPWD=/usr/local/mysqlSHLVL=2OLDPWD=/_=/usr/local/mysql/bin/mysqld_safecat: n: No such file or directory
[root@localhost ~]# cat /proc/4518/environ |tr  ‘\0‘ ‘\n‘
TERM=xterm
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/mysql/bin
PWD=/usr/local/mysql
SHLVL=2
OLDPWD=/
_=/usr/local/mysql/bin/mysqld_safe
[root@localhost ~]# 

将一句话拆成多行。

总结

有一个误区很容易被误理解成SET1,SET2是一个字符组合,其实不是这样的;SET1和SET2里面都是值的单个字符之间的替换,比如‘ab‘不要把ab理解成一个组合。


备注:

作者:pursuer.chen

博客:http://www.cnblogs.com/chenmh

本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接。

《欢迎交流讨论》

时间: 2024-08-05 05:00:58

Linux tr命令的相关文章

linux tr命令详解

通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能.您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符.您也可以用它来除去重复字符.这就是所有 tr 所能够做的.     tr用来从标准输入中通过替换或删除操作进行字符转换.tr主要用于删除文件中控制字符或进行字符转换.使用tr时要转换两个字符串:字符串1用于查询,字符串2用于处理各种转换.tr刚执行时,字符串1中的字符被映射到字符串2中的字符,然后转换操作开始.    带

[转]linux tr命令详解

转自:http://www.cnblogs.com/huangxingkezhan/archive/2013/01/23/2874031.html 通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能.您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符.您也可以用它来除去重复字符.这就是所有 tr 所能够做的. tr用来从标准输入中通过替换或删除操作进行字符转换.tr主要用于删除文件中控制字符或进行字符转换.使用tr时要转换

Linux 重定向、管道和 tr命令总给

描述:        标准输出(standard output)指的是命令执行所回传的正确的信息 标准输出(standard error output)指的是命令执行失败后所回传的错误信息 Linux 给程序提供三种I/O 设备 标准输入(STDIN )- 0 默认接受来自键盘的输入,使用< 或者 << 标准输出(STDOUT )- 1 默认输出到终端窗口,默认是屏幕,使用> 或者 >> 标准错误输出(STDERR )- 2 默认输出到终端窗口,默认是屏幕,使用2>

linux系统之tr命令

tr命令介绍以及使用 目录: 1.tr命令的介绍 2.tr命令格式 3tr命令使用项. 4.常见的tr命令的使用 tr命令介绍 从标准输入中翻译.压缩和/或删除字符,写入标准输出,说白了就转换和删除字符. tr命令格式 tr 参数 test1 test2 tr命令的使用项 -c, -C, –complement 用集合1中的字符串替换,要求字符集为ASCII. -d, –delete 删除集合1中的字符而不是转换 -s, –squeeze-repeats 删除所有重复出现字符序列,只保留第一个:

linux cat,tac,more,less,head,tail,cut,sort,uniq,wc,tr命令的使用

cat:连接并显示,比如: [[email protected] ~]# cat /tmp/sort.test  111 324 567 324 890 890 567 abc 加上选项-n会显示行号: [[email protected] ~]# cat -n /tmp/sort.test      1111      2324      3567      4324      5890      6890      7567      8abc 加上-E选项会显示行尾符$:(linux中行尾

《tr命令》-linux命令五分钟系列之六

本原创文章属于<Linux大棚>博客. 博客地址为http://roclinux.cn. 文章作者为roc 希望您能通过捐款的方式支持Linux大棚博客的运行和发展.请见“关于捐款” == tr指令从标准输入设备读取数据,经过字符串转译后,输出到标准输出设备. cat filename |tr u n :用于在屏幕上将filename文件中的u替换为n,而实际文件中未作替换 cat filename | tr -d abc 在屏幕上将filename内容中的所有出现的a或b或c字符删去,并显示

Linux:tr命令详解

tr tr命令可以对来自标准输入的字符进行替换.压缩和删除 语法 tr(选项)(SET1 SET2) 选项 -c或--complerment:取代所有不属于第一字符集的字符: -d或--delete:删除所有属于第一字符集的字符: -s或--squeeze-repeats:把连续重复的字符以单独一个字符表示: -t或--truncate-set1:先删除第一字符集较第二字符集多出的字符. 参数 SET1:指定要转换或删除的原字符集. 当执行转换操作时,必须使用参数"SET2"指定转换的

Linux命令篇之wc命令和tr命令

wc 统计文件里面有多少单词,多少行,多少字符. wc语法 [[email protected]~]# wc [-lwm] 选项与参数: -l  :仅列出行: -w  :仅列出多少字(英文单字): -m  :多少字符: 默认使用wc统计/etc/passwd #wc /etc/passwd 40   451719 /etc/passwd 40是行数,45是单词数,1719是字节数 wc的命令比较简单使用,每个参数使用如下: #wc -l /etc/passwd   #统计行数,在对记录数时,很常

linux下的tr命令

1.使用方法 tr命令可以对来自标准输入的字符进行替换.压缩和删除. -c或--complerment:取代所有不属于第一字符集的字符: -d或--delete:删除所有属于第一字符集的字符: -s或--squeeze-repeats:把连续重复的字符以单独一个字符表示: -t或--truncate-set1:先删除第一字符集较第二字符集多出的字符.注意:tr命令只改变输出显示效果,不改变实际输入源内容.在替换.删除文件内容时需要重定向输出. 2.字符范围 指定字符串1或字符串2的内容时,只能使