tr主要用来删除文件中的控制字符或进行字符转换
一、删除字符
1、格式:tr -s "字符表达式" 文件名
字符表达式如下:
[a-z]:a-z内的字符组成的字符串
[A-Z]: A-Z内的字符组成的字符串
[0-9]: 数字串
/octal: 三位的八进制数,对应有效的ascii字符
[o*n]:表示字符o重复n次,[o*2]表示匹配oo的字符串
["\n"]:换行符
2、例子:
2.1、去除连续重复出现的字符,并保存输出
tr -s "[a-z][A-Z]" <a.txt >result.txt
2.2、去除空行
tr -s ["\n"] <a.txt >result.txt 或
tr -s "[\012]" <a.txt >result.txt
2.3、大写到小写
tr "[a-z]" "[A-Z]" <a.txt >result.txt
2.4、小写到大写
tr "[A-Z]" "[a-z]" <a.txt >result.txt
二、转换控制字符
1、格式:tr -s "原字符串表达式" "替换后的字符串表达式" < 文件名
2、例子:
# cat -v control_string.sh ^M的八进制是015
#!/bin/bash^M
^M
echo "Hello!"^M
^M
echo `date`IMAPM2000:/opt/zj
#
2.1、有空格替换文件中的^M
# tr -s "[\015]" "\n" < control_string.sh > new_resutl.sh
2.2、删除多个字符
# tr -s "[\015]" "\n" < control_string.sh | tr "[l*2]" "***" >new_resutl.sh
# cat -v new_resutl.sh
#!/bin/bash
echo "He***o!"
echo `date`
echo "haha"
#