用途
可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符。您也可以用它来除去重复字符。这就是所有 tr 所能够做的。
用法
命令格式
tr -c -d -s ["string1_to_translate_from"] ["string2_to_translate_to"] < input-file
-c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII(不常用)。
-d 删除字符串1中所有输入字符。
-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。
input-file是转换文件名,可以使用其他格式输入,比如管道。
普通替换
cat file | tr '\t' '\n' #将tab替换为换行
cat file | tr '[a-z]' '[A-Z]' #小写转大写
cat file | tr '[0-9]' '[a-j]' #数字转对应字符
cat file | tr 'abc' '123' #a→1,b→2,c→3,不是abc→123,是字符级别的替换
删除
cat file | tr -d '\r\n' #删除回车换行符
cat file | tr -d '\r' #删除windows文件造成的'^M'字符
cat file | tr -d 'abc' #删除所有的字符a,b,c,不是删除整个字符串abc
重复字符替换
cat file | tr -s '\n' #空行删除
cat file | tr -s '\t' '\n' #将多个连续tab合并成一个,并替换成换行符