下面的 tr 命令有什么作用?

下面的 tr 命令有什么作用?

我正在查看 .sh 脚本,其中一行如下:

tr -d '\15' < file1.txt  > /testProject/files/file1.txt

我理解这部分file1.txt > /testProject/files/file1.txt 意味着将结果添加到 /testProject/files/file1.txt 但有什么作用tr -d '\15' < file1.txt

我知道 \15 是一个 ASCAII 字符,但不确定它的作用。

如果有人可以提供帮助,我将非常感激。

答案1

该命令可以被评估为三个逻辑部分:

  • tr -d '\15'- 这是执行的命令。
  • < file1.txt - file1.txt 作为输入传递。
  • > /testProject/files/file1.txt- 输出写入/testProject/files/file1.txt。

正如 Panki 在评论中所说,tr联机帮助页拥有您需要的大部分信息。该命令用于将字符从一组转换为另一组。使用该-d选项,它会删除字符。

在同一手册页中,您可以看到特殊解释序列的列表。第一个是\NNN,用于表示八进制数字。

最后一个问题是什么\15意思。您可以使用printfod命令查看:

$ printf '\15' | od -c
0000000  \r
0000001

所以该命令的最终效果是从输入文件中删除'\r'(回车)字符。

正如 Steeldriver 在评论中所述,这通常用于从 Windows 风格的行结束符 ('\r\n') 转换为 Unix 风格的行结束符 ('\n')。

相关内容