跳转至

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

参考

tr命令详解

回到页面顶部