tr命令的使用

来源:互联网 发布:刷各种业务软件 编辑:程序博客网 时间:2024/06/06 01:47
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脚本编程
0 0
原创粉丝点击