tr是个简单的替换命令,从标准输入中替换、缩减和/或删除字符,并将结果写到标准输出。
tr常见命令参数
用法:tr [选项]... SET1 [SET2]
从标准输入中替换、缩减和/或删除字符,并将结果写到标准输出。-c, -C, --complement 首先补足SET1-d, --delete 删除匹配SET1 的内容,并不作替换-s, --squeeze-repeats 如果匹配于SET1 的字符在输入序列中存在连续的重复,在替换时会被统一缩为一个字符的长度-t, --truncate-set1 先将SET1 的长度截为和SET2 相等--help 显示此帮助信息并退出--version 显示版本信息并退出SET 是一组字符串,一般都可按照字面含义理解。解析序列如下:\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:] 所有的十六进制数[=字符=] 所有和指定字符相等的字符
常用的命令展示
不换行显示
seq 9 | tr "\n" "|"
删除多余的空行
cat last.txt | tr -s '\n'
删除指定的字符
cat last.txt | tr -d '[0-9].'
大小写转换
cat last.txt | tr '[a-z]' '[A-Z]'
字符串去重复
cat last.txt | tr -s '[a-zA-Z]'
不满足第一列的时候用第二列替代
cat last.txt | tr -c '[a-z][0-9]' '+'
替换字母权限为数字
tr rwx- 4321
ll h.txt | tr rwx- 4321
ll /etc/hosts | tr rwx- 4210| awk -F "" '{print $1+$2+$3 $4+$5+$6 $7+$8+$9}'
ll /etc/hosts | cut -c 2-10 | tr rwx- 4210 |awk -F "" '{print $1+$2+$3 $4+$5+$6 $7+$8+$9}'