linux tr命令对字符串转换
tr(translate 或 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
说明:删除非字母数字的字符。