将换行符替换为 nul

将换行符替换为 nul

bash, osx 小牛队

我想用 NUL (hex= ) 替换 txt 文件中的LF 字符0A(hex= ) 。00我可以使用greptr或其他东西来完成此任务吗?我一直在使用 bbedit 来替换它们,但我想要一些可以在 bash 中快速完成的事情。

答案1

是的,这是一份工作tr

tr '\n' '\0' < file > file.new

或者就地:

tr '\n' '\0' < file 1<> file

在这里,文件被重写。这是可行的,因为我们总是写入与读取的数据一样多的数据(并且不会覆盖我们尚未读取的数据)。如果该tr过程被中断,可以再次启动以完成作业。

与 相反perl -pi 's/\n/\0/',它保留了文件的所有属性,并且不会破坏硬链接或符号链接,并且不需要复制磁盘上的数据(除非下面正在进行一些写入时复制)。

相关内容