我正在编写一个强制文件格式的脚本。它所做的一件事是确保所有文本文件都以换行符结尾。
我不确定的一个领域是.hdr
文件。这些是图像,Linuxfile
命令说它们是Radiance HDR image data
,但它们可以用文本编辑器打开,脚本将它们解释为文本文件。因此,脚本会自动将换行符附加到这些文件中。
这是一件好事吗?这种文件类型是如何使用的?这些图像文件是否有任何用例可以作为文本读取?使这些文件以换行符结尾有什么缺点吗?我应该在我的脚本中添加一个例外来排除hdr
文件吗?
我正在编写一个强制文件格式的脚本。它所做的一件事是确保所有文本文件都以换行符结尾。
我不确定的一个领域是.hdr
文件。这些是图像,Linuxfile
命令说它们是Radiance HDR image data
,但它们可以用文本编辑器打开,脚本将它们解释为文本文件。因此,脚本会自动将换行符附加到这些文件中。
这是一件好事吗?这种文件类型是如何使用的?这些图像文件是否有任何用例可以作为文本读取?使这些文件以换行符结尾有什么缺点吗?我应该在我的脚本中添加一个例外来排除hdr
文件吗?
不,但它可能也不错。关于格式[强调我的]:
(来源)
我从这个站点下载了一个
.hdr
文件 (nancy_church_1.hdr
) 。我在副本中添加了换行符,甚至附加了另一个文件。我用 测试过,该工具没有抱怨。luminance-hdr
我不惊讶。分辨率已知;根据这个描述,每个像素有四个字节,即使涉及游程编码(rle),仍然很容易知道何时停止解释二进制像素数据。而且没有我们可以打破的页脚。
还有其他工具可能会或可能不会抱怨。
即使它是无害的,在
.hdr
文件中添加换行符也无济于事。人们可能想要添加缺少的换行符以满足POSIX 关于文本文件的要求之一,但.hdr
文件首先是设计而不是文本文件。没有什么可修复的。明确问题的答案:
由于语义,有些棘手的问题。不,它们不应以解释为换行符的字符结尾。它们可能以
0x0a
字节结尾。作为二进制像素数据的一部分,0x0a
不应将其解释为换行符。作为图形。
您可以阅读标题和描述分辨率和像素顺序的行。您不应该尝试将整个文件作为文本读取。
文件有可能在文件系统中占用更多块。除此之外很难说,一些工具可能会抱怨。没有好处,所以你只能让事情变得更糟或平等。
我觉得你应该。我会。我宁愿依赖
file
命令,而不是扩展。