linux下的tr命令
Posted hancq
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下的tr命令相关的知识,希望对你有一定的参考价值。
1、使用方法
tr命令可以对来自标准输入的字符进行替换、压缩和删除。
-c或--complerment:取代所有不属于第一字符集的字符;
-d或--delete:删除所有属于第一字符集的字符;
-s或--squeeze-repeats:把连续重复的字符以单独一个字符表示;
-t或--truncate-set1:先删除第一字符集较第二字符集多出的字符。
注意:tr命令只改变输出显示效果,不改变实际输入源内容。在替换、删除文件内容时需要重定向输出。
注意:tr命令只改变输出显示效果,不改变实际输入源内容。在替换、删除文件内容时需要重定向输出。
2、字符范围
指定字符串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
字符类:
[:alnum:]:字母和数字
[:alpha:]:字母
[:cntrl:]:控制(非打印)字符
[:digit:]:数字
[:graph:]:图形字符
[:lower:]:小写字母
[:print:]:可打印字符
[:punct:]:标点符号
[:space:]:空白字符
[:upper:]:大写字母
[:xdigit:]:十六进制字符
3. 应用实例
(1)将输入字符由大写转换为小写:
echo "HELLO WORLD" | tr ‘[A-Z]‘ ‘[a-z]‘ hello world
(2)删除字符
echo "hello 123 world 456" | tr -d ‘0-9‘ hello world
(3)删除字符的补集
echo aa.,a 1 b#$bb 2 c*/cc 3 ddd 4 | tr -d -c ‘0-9 \n‘ 1 2 3 4
(4)压缩重复的字符
echo "thissss is a text linnnnnnne." | tr -s ‘ sn‘ this is a text line.
(5)替换文件内容
cat file | tr ‘abc‘ ‘ABC‘ > newfile
以上是关于linux下的tr命令的主要内容,如果未能解决你的问题,请参考以下文章