1.tr用来从标准输入中通过替换或删除操作进行字符转换。tr主要用于删除文件中控制字符或进行字符转换。使用tr时要转换两个字符串:字符串1用于查询,字符串2用于处理各种转换。tr刚执行时,字符串 1中的字符被映射到字符串2中的字符,然后转换操作开始。
2.tr[-c/-d/-s] str1 str2 file
tr一般使用的选项有:
-c, -d, -s
-c: 用字符串1中字符集的补集替换此字符集,要求字符集为 ASCII
-d: 删除字符串1中所有输入字符。
-s: 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。
3.字符范围
指定字符串 1或字符串2的内容时,只能使用单字符或字符串范围或列表。
[a-z] a-z内的字符组成的字符串。
[A-Z] A-Z内的字符组成的字符串。
[0-9] 数字串。
/octal 一个三位的八进制数,对应有效的 ASCII字符。
[O*n] 表示字符O重复出现指定次数 n。因此[O*2]匹配OO的字符串。
一些特殊字符需要屏蔽
\a Ctrl-G 铃声
\b Ctrl-H 退格符
\f Ctrl-L 走行换页
\n Ctrl-J 新行
\r Ctrl-M 回车
\t Ctrl-I tab键
\v Ctrl-X
举例:
将luanxu.txt文件中字母输入到out
tr -s '[a-z]' < luanxu.txt >out
去除重复的数字
tr -s '[a-z]' < out
删除空行
tr -s '[\012]' < out
或者 tr -s '[\n]' < out
大小写字母的转换
echo "Hello, Jack" | tr '[a-z]' '[A-Z]'
echo "Hello, Jack" | tr '[A-Z]' '[a-z]'
echo "Hello, Jack" | tr '[:lower:]' '[:upper:]'
删除文件中的日期
tr -cs '[a-z][A-Z]' '[\012*]'
文件内容应该类似于
Jack 10:00
进行转换
tr -s '[\r]' '[\n]' < input_file.txt
tr -s '[:]' '[\011]' < /etc/passwd
参考书籍: shell脚本编程
2.tr[-c/-d/-s] str1 str2 file
tr一般使用的选项有:
-c, -d, -s
-c: 用字符串1中字符集的补集替换此字符集,要求字符集为 ASCII
-d: 删除字符串1中所有输入字符。
-s: 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。
3.字符范围
指定字符串 1或字符串2的内容时,只能使用单字符或字符串范围或列表。
[a-z] a-z内的字符组成的字符串。
[A-Z] A-Z内的字符组成的字符串。
[0-9] 数字串。
/octal 一个三位的八进制数,对应有效的 ASCII字符。
[O*n] 表示字符O重复出现指定次数 n。因此[O*2]匹配OO的字符串。
一些特殊字符需要屏蔽
\a Ctrl-G 铃声
\b Ctrl-H 退格符
\f Ctrl-L 走行换页
\n Ctrl-J 新行
\r Ctrl-M 回车
\t Ctrl-I tab键
\v Ctrl-X
举例:
将luanxu.txt文件中字母输入到out
tr -s '[a-z]' < luanxu.txt >out
去除重复的数字
tr -s '[a-z]' < out
删除空行
tr -s '[\012]' < out
或者 tr -s '[\n]' < out
大小写字母的转换
echo "Hello, Jack" | tr '[a-z]' '[A-Z]'
echo "Hello, Jack" | tr '[A-Z]' '[a-z]'
echo "Hello, Jack" | tr '[:lower:]' '[:upper:]'
删除文件中的日期
tr -cs '[a-z][A-Z]' '[\012*]'
文件内容应该类似于
Jack 10:00
进行转换
tr -s '[\r]' '[\n]' < input_file.txt
tr -s '[:]' '[\011]' < /etc/passwd
参考书籍: shell脚本编程