linux tr命令对字符串转换

trtranslate 或 delete characters)是 Linux 下一个非常常用的字符转换工具,可以用来 替换、删除、压缩重复字符


常见用法

1. 字符替换

1
echo "hello 123" | tr 'a-z' 'A-Z'

👉 输出:HELLO 123
说明:把小写字母替换成大写字母。


2. 删除字符(-d

1
echo "hello 123" | tr -d '0-9'

👉 输出:hello
说明:删除所有数字。


3. 压缩重复字符(-s,squeeze)

1
echo "heeeellooo    world" | tr -s ' '

👉 输出:heeeellooo world
说明:把连续的空格压缩成一个。


4. 转换换行符为空格(你要的一行输出)

1
cat file.txt | tr '\n' ' '

👉 把文件中的多行内容,转成一行、空格分隔。

如果最后一行也有换行,可能会多出一个空格,可以用 sed 清理:

1
cat file.txt | tr '\n' ' ' | sed 's/ $//'

5. 只保留某些字符(补集 -c

1
echo "abc123!@#" | tr -cd 'a-zA-Z0-9'

👉 输出:abc123
说明:删除非字母数字的字符。