linux常用命令tr

tr命令介绍

tr命令的作用是从标准输入中替换或删除字符串,并将处理后的内容写到标准输出。

语法格式

tr [option] … set1 [set2]

常用选项

-c,-C,--complement,使用字符集set1进行替换
-d,--delete,删除匹配set1的内容,不进行替换
-s,--squeeze-repeats,在输入字符集中,若能连续不间断的匹配SET1,在删除重复出现的内容,只保一各,即将重复出现字符串压缩为一个字符串
-t,--truncate-set1,将set1截取到与set2相同的长度

字符集合:

\NNN  八进制值为NNN 的字符(1 至3 个数位)
\\            反斜杠
\a            终端鸣响
\b            退格
\f            换页
\n            换行
\r            回车
\t            水平制表符
\v            垂直制表符
字符1-字符2   从字符1 到字符2 的升序递增过程中经历的所有字符
[字符*]       在SET2 中适用,指定字符会被连续复制直到吻合设置1 的长度
[字符*次数]   对字符执行指定次数的复制,若次数以 0 开头则被视为八进制数
[:alnum:]     所有的字母和数字
[:alpha:]     所有的字母
[:blank:]     所有呈水平排列的空白字符
[:cntrl:]     所有的控制字符
[:digit:]     所有的数字
[:graph:]     所有的可打印字符,不包括空格
[:lower:]     所有的小写字母
[:print:]     所有的可打印字符,包括空格
[:punct:]     所有的标点字符
[:space:]     所有呈水平或垂直排列的空白字符
[:upper:]     所有的大写字母
[:xdigit:]    所有的十六进制数
[=字符=]      所有和指定字符相等的字符

使用tr进行字符串替换

使用tr进行字符串替换是,需要提供两个字符串,字符串1用于匹配字符串,字符串2用于处理各种转换,

1、使用tr命令将标准输入中的i替换为h
	[root@mgr1 els]# echo abcdefgi |tr i h
	abcdefgh
2、使用-c选项,将标准输入字符集中不与匹配abc(set1)的字符串全部替换为h(set2)
[root@mgr1 els]# echo abcdefgi |tr -c abc  h
	abchhhhhh


3、将文件file中的全部替换为z
	[root@mgr1 els]# cat a|tr "a" z
	zbcdzbcdzbcdzbcd
4、将文件file中所有的小写字符全部转换为大写(set1 和set2一定要加引号)
	[root@mgr1 els]# echo abcd | tr '[a-z]' '[A-Z]'
	ABCD
5、把文件中的字符替换为数字
	[root@mgr1 els]# cat a|tr '[a-z]' '[0-9]'
	0123
6、删除文件出现的字符abc
	[root@mgr1 els]# more a
	abcd
	[root@mgr1 els]# cat a|tr -d 'abc'
	d
	[root@mgr1 els]#
	注意:这里删除的字符abc,不是整体的字符串“abc”,而是a,b,c三个字符,只要文件中出现a,b,c都会被删除
7、将文件中连续出现的a压缩到一个
	[root@mgr1 els]# more a
	abcdaaa
	[root@mgr1 els]# cat a|tr -s "a"
	abcda
8、删除文件中出现的"\n"或"\t"等字符
	[root@mgr1 els]# more a
	abcd	a
	bcaaa
	[root@mgr1 els]# cat a| tr -d "\n\t"
	abcdabcaaa

9、删除文件中的空行
	[root@mgr1 els]# more a
	abcd	a
	
	bc
	
	
	aaa
	[root@mgr1 els]# cat a |tr -s "\n"
	abcd	a
	bc
	aaa
10、删除文件中由windows系统造成的“^M”字符
	# cat a|tr -d '\r'
	# cat a|tr -s '\r' '\n'



11、使用tr实现文件的加解密
	# 加密
	[root@mgr1 els]# echo "welcom linux" |tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' 'hijklnmABCDEFGopqrstuvwxyzOPQRSTUVWXYZHIJKLNMabcdefg'
	dSZQJH ZWIbe

	# 解密
	[root@mgr1 els]# echo 'dSZQJH ZWIbe' |tr 'hijklnmABCDEFGopqrstuvwxyzOPQRSTUVWXYZHIJKLNMabcdefg' 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
	welcom linux

12、从文本中将未在set1补集中出现的内容全部删除
	[root@mgr1 els]# more a
	abcdefghijklmn
	[root@mgr1 els]# cat a|tr -d -c "ahj"
	ahj
13、把文本中未在set1补集中出现的字符,全部使用set2补集中的字符串替换,注意,在这种场景下,set2只能一个字符生效,即使给出多个字符,也是最后一个字符生效
	[root@mgr1 els]# cat a | tr -c "ahj" "z"
	azzzzzzhzjzzzzz
	[root@mgr1 els]# cat a | tr -c "ahj" "uvwxyz"
	azzzzzzhzjzzzzz
14、压缩文件中的空格
	[root@mgr1 els]# more a| tr -s ' '
	abcd a nb caaa
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值