tr命令是Linux/Unix中的经典文本处理命令,名字来源于"translate"(转换)
作用:对标准输入字符进行一对一的替换、删除或压缩。
基本语法:
bash
tr [选项] 字符集1 [字符集2]
示例:
bash
rain@LAPTOP-IIB6PKR5:~$ echo "Hello" | tr 'e' 'E' # 将Hello中的e换成大写的E然后再输出
HEllo
bash
rain@LAPTOP-IIB6PKR5:~$ echo "Hello" | tr 'el' 'EL' # 替换多个字符 ,即将所有的e替换成大写E,所有小写l替换成大写L
HELLo
bash
rain@LAPTOP-IIB6PKR5:~$ echo "Hello World" | tr 'a-z' 'A-Z' # 大小写转换 'a-z'和'A-Z'不是正则表达式,而是字符集(character set)或字符范围
HELLO WORLD
bash
rain@LAPTOP-IIB6PKR5:~$ echo "Hello 123World" | tr -d '0-9' # 删除数字
Hello World
bash
rain@LAPTOP-IIB6PKR5:~$ echo -e "Hello\nWorld"
Hello
World
rain@LAPTOP-IIB6PKR5:~$ echo -e "Hello\nWorld" | tr -d "\n"
HelloWorldrain@LAPTOP-IIB6PKR5:~$
bash
rain@LAPTOP-IIB6PKR5:~$ echo -e "Hello\nWorld" | tr -d '\n'
HelloWorldrain@LAPTOP-IIB6PKR5:~$
rain@LAPTOP-IIB6PKR5:~$ echo $PATH | tr ':' '\n' # 将冒号替换成换行符,原先echo $PATH输出的结果是每个路径被:分隔,现在是被换行符分隔,使得输出更加清晰直观
/run/user/1000/fnm_multishells/411_1778220590215/bin
/home/rain/.local/share/fnm
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/games
/usr/local/games
/usr/lib/wsl/lib
/mnt/c/Program Files (x86)/Common Files/Oracle/Java/javapath
/mnt/c/Program Files/Common Files/Oracle/Java/javapath
/mnt/c/Windows/system32
/mnt/c/Windows
/mnt/c/Windows/System32/Wbem
/mnt/c/Windows/System32/WindowsPowerShell/v1.0/
/mnt/c/Windows/System32/OpenSSH/
/mnt/c/Program Files (x86)/NVIDIA Corporation/PhysX/Common
/mnt/c/Program Files/NVIDIA Corporation/NVIDIA App/NvDLISR
/mnt/c/Program Files/dotnet/
/mnt/d/Users/Admin/AppData/Local/Programs/MiKTeX/miktex/bin/x64
/mnt/d/chromedriver/chromedriver-win64
/mnt/d/Windows Kits/10/Windows Performance Toolkit/
/mnt/d/CodeFamily/JDK25/bin
/mnt/d/CodeFamily/jdk1.8.0_281/bin
/mnt/d/MinGW/mingw64/bin
/mnt/d/CodeFamily/Python/Python314/Scripts/
/mnt/d/CodeFamily/Python/Python314/
/mnt/c/Users/Admin/AppData/Local/Microsoft/WindowsApps
/mnt/d/Python Files/PyCharm 2025.1.1.1/bin
/mnt/d/Program Files/JetBrains/DataGrip 2025.1.2/bin
/mnt/d/Program Files/JetBrains/CLion 2025.1.1/bin
/mnt/d/Users/Admin/AppData/Local/Programs/Microsoft VS Code/bin
/mnt/d/APP Program/Fiddler
/mnt/d/MinGW/mingw64/bin
/snap/bin
tr与sed的区别:
| 特性 | tr |
sed |
|---|---|---|
| 处理单位 | 单个字符 | 字符串/正则表达式 |
| 功能复杂度 | 简单(只能字符映射) | 强大(支持正则、条件、脚本) |
| 速度 | 更快 | 较慢 |
| 适用场景 | 简单字符替换/删除/压缩 | 复杂文本处理 |