tr 命令
2013-07-05 by dongnan
举个栗子
替换随机字符串:
# 读取100字节的随机字符串,tr留下匹配的字符串其它的则删除
head -c 100 /dev/urandom | tr -dc 'a-z0-9A-Z';echo
JgwFqv6DSiT7bCYcnsS5DxRA
字符abc替换为def:
# 替换的是字母而不是将字符串"abc"替换为字符串"def"
echo 'abc' | tr 'abc' 'def'
def
删除重复出现字符a:
echo 'aaabc' | tr -s 'a'
命令参数
常用选项:
tr -c -d -s ["string1_to_translate_from"] ["string2_to_translate_to"] < input-file
- -c用字符串- 1中字符集的补集替换此字符集,要求字符集为- ASCII。
- -d删除字符串- 1中所有输入字符。
- -s删除所有重复出现字符序列,只保留第一个即将重复出现字符串压缩为一个字符串。
- input-file是转换文件名。虽然可以使用其他格式输入,但这种格式最常用。
字符范围:
- [a-z]- a-z内的字符组成的字符串。
- [A-Z]- A-Z内的字符组成的字符串。
- [0-9]数字组成的字符串。
- \octal一个三位的八进制数,对应有效的- ASCII字符。
- [O*n]表示字符- O重复出现指定次数- n。因此- [O*2]匹配- OO的字符串。
小结
3个例子代表了tr的功能,它可以用一个字符来替换另一个字符,或者可以完全除去一些字符,也可以用它来除去重复字符