据说tr命令是linux行家里的精美小工具,可以用来编写很多优美的单行命令。
使用:
tr -c -d -s ["string1_to_translate_from"] ["string2_to_translate_to"]
参数:
-c #使用string1的补集,要求string为ASCII
-d #删除string1中所有输入字符
-s #删除所有重复出现的字符序列,只保留第一个,即将重复出现的字符串压缩为第一个字符串
#大小转为小写
> echo "HELLO WORLD"|tr "A-Z" "a-z"
hello world
#删除数字
> echo "HELLO 134 WORLD 565"|tr -d "1-9"
HELLO WORLD
#-c取补集,代表删除非数字、'\n'换行
> echo "HELLO 134 WORLD 565"|tr -d -c "1-9\n"
134565
#删除非数字、空格、'\n'换行
> echo "HELLO 134 WORLD 565"|tr -d -c "1-9 \n"
134 565
#压缩空格,只保留一个
> echo "HELLO WORLD HELLO SHELL"|tr -s ' '
HELLO WORLD HELLO SHELL
#用tr命令做加法
> cat sum.txt
1
2
3
4
5
> cat sum.txt |echo $[ $(tr '\n' '+') 0 ]
15
#cat sum.txt|tr '\n' '+' 将所有'\n'换成一个'+',输出1+2+3+4+5+,最后加上一个0变成$[ 1+2+3+4+5+0 ]得到15
字符类:tr也可以使用字符类,如下
alnum #字母和数字
alpha #字母
cntrl #控制(非打印)字符
digit #数字
graph #图形
lower #小写字母
upper #大写字母
print #可打印字符
punct #标点符号
space #空白字符
xdigit #十六进制字符
>tr '[:lower:]' '[:upper:]'
小写转换为大写