tr Commandtr命令

Translate or delete characters转换或删除字符

What is tr?什么是tr?

tr stands for "translate". It translates or deletes characters from standard input. Unlike other filters, tr works on individual characters, making it perfect for case conversion, character deletion, or simple character substitution.

tr代表"translate"(转换)。它从标准输入中转换或删除字符。与其他过滤器不同,tr作用于单个字符,使其非常适合大小写转换、字符删除或简单的字符替换。

Basic Usage基本用法

$ echo "hello" | tr a-z A-Z
HELLO
$ tr -d '0-9' < file.txt
# Delete all digits from file
$ tr -s ' '
# Squeeze multiple spaces into one
$ echo "hello" | tr a-z A-Z
HELLO
$ tr -d '0-9' < file.txt
# 从文件中删除所有数字
$ tr -s ' '
# 将多个空格压缩为一个

Common Options常用选项

Option选项 Full Name完整名称 Description描述 Example示例
-d delete删除 Delete specified characters删除指定字符 tr -d 'a-z'
-s squeeze-repeats压缩重复 Squeeze repeated characters压缩重复的字符 tr -s ' \n'
-c complement补集 Use complement of first set使用第一组的补集 tr -c 'a-z'\n' '*'
-t truncate-set1截断 Truncate first set to second将第一组截断为第二组 tr -t '0-9' 'a-j'

Common Character Sets常用字符集

Set集合 Meaning含义 Example示例
[:alnum:] Alphanumeric characters字母数字字符 tr -cd '[:alnum:]'\n'
[:alpha:] Alphabetic characters字母字符 tr -cd '[:alpha:]'
[:digit:] Numeric characters数字字符 tr -cd '[:digit:]'
[:lower:] Lowercase letters小写字母 tr '[:lower:]' '[:upper:]'
[:upper:] Uppercase letters大写字母 tr '[:upper:]' '[:lower:]'
[:space:] Whitespace characters空白字符 tr -s '[:space:]'

Practical Scenarios实际场景

Convert to Uppercase转换为大写

$ tr '[:lower:]' '[:upper:]' < input.txt
# Convert all lowercase to uppercase
$ tr '[:lower:]' '[:upper:]' < input.txt
# 将所有小写转换为大写

Remove All Non-Numeric Characters删除所有非数字字符

$ tr -cd '0-9\n' < phone.txt
# Keep only digits and newlines
$ tr -cd '0-9\n' < phone.txt
# 仅保留数字和换行符

Replace Spaces with Newlines将空格替换为换行符

$ tr ' ' '\n' < oneline.txt > manylines.txt
# Convert space-separated list to line-separated
$ tr ' ' '\n' < oneline.txt > manylines.txt
# 将空格分隔的列表转换为行分隔

Memory Tricks记忆技巧

🔄 "tr" = translate - Transform characters one-by-one

🔄 "tr" = translate(转换) - 逐个转换字符

🗑️ -d = Delete - Remove specified characters

🗑️ -d = Delete(删除) - 删除指定的字符

📦 -s = Squeeze - Compress repeated characters into one

📦 -s = Squeeze(挤压) - 将重复的字符压缩成一个

🌈 a-z A-Z = Case conversion - Map lowercase to uppercase

🌈 a-z A-Z = 大小写转换 - 将小写映射到大写