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
的功能,它可以用一个字符来替换另一个字符,或者可以完全除去一些字符,也可以用它来除去重复字符