bash, osx 小牛队
我想用 NUL (hex= ) 替换 txt 文件中的LF 字符0A
(hex= ) 。00
我可以使用grep
或tr
或其他东西来完成此任务吗?我一直在使用 bbedit 来替换它们,但我想要一些可以在 bash 中快速完成的事情。
答案1
是的,这是一份工作tr
:
tr '\n' '\0' < file > file.new
或者就地:
tr '\n' '\0' < file 1<> file
在这里,文件被重写。这是可行的,因为我们总是写入与读取的数据一样多的数据(并且不会覆盖我们尚未读取的数据)。如果该tr
过程被中断,可以再次启动以完成作业。
与 相反perl -pi 's/\n/\0/'
,它保留了文件的所有属性,并且不会破坏硬链接或符号链接,并且不需要复制磁盘上的数据(除非下面正在进行一些写入时复制)。