跳转至

tr

tr 是 Linux 和 Unix 系统中的一个文本处理命令,名字来源于 "translate"(翻译/转换)。它主要用来转换或删除文本中的字符。tr 从标准输入读取数据,处理后将结果输出到标准输出。

基本用法

  1. 字符替换
    替换一个字符为另一个字符:
echo "hello world" | tr 'o' '0'

输出:hell0 w0rld

  1. 字符集替换
    替换一组字符为另一组字符:
echo "abcde" | tr 'abc' '123'

输出:123de

  1. 删除字符
    使用 -d 删除指定字符:
echo "hello world" | tr -d 'o'

输出:hell wrld

  1. 压缩重复字符
    使用 -s 压缩重复的字符:
echo "aaabbbccc" | tr -s 'a'

输出:abbbccc

  1. 字符集的范围
    使用范围来指定字符集:
echo "abcdef" | tr 'a-f' 'A-F'

输出:ABCDEF

  1. 替换换行符
    替换换行符为其他字符(例如逗号):
echo -e "line1\nline2\nline3" | tr '\n' ','

输出:line1,line2,line3,

常见选项

  • -d:删除指定字符。
  • -s:压缩重复出现的字符。
  • -c:对字符集取反。

注意事项

  • tr 不能直接操作文件,它只处理标准输入和输出。如果需要处理文件,可以结合 <> 重定向使用。
  • 字符替换需要源字符集和目标字符集长度一致,否则 tr 会自动截断或重复。

tr 是一个简单高效的命令,特别适合进行字符级的替换或处理。

把换行符号换成逗号

tr '\n' ',' < input.txt > output.txt

换行符换成逗号,并去掉最后一个逗号

tr '\n' ',' < input.txt | sed 's/,$/\n/'