Sed 拆下'^@';文件中的行

Sed 拆下'^@';文件中的行,sed,ascii,binaryfiles,nano,Sed,Ascii,Binaryfiles,Nano,我有一个文件,其中有一行是这种类型的: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 实际上,所有其他行都是一个数字列表(矩阵)或******。问题是,我无法用普通编辑器打开这一行,因此我无法删

我有一个文件,其中有一行是这种类型的:

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

实际上,所有其他行都是一个数字列表(矩阵)或
******
。问题是,我无法用普通编辑器打开这一行,因此我无法删除这一行

我可以使用
nano
通过shell打开文件

为了消除这一行(即从顶部开始的第二行),我使用了简单的命令:

sed'2d'fort.21.dat

但我无法消除它

有人能帮我去掉这一行并使这个file.dat正常可读吗

非常感谢

试试:

tr -d '\0' < fort.21.dat > fixed.21.dat
tr-d'\0'fixed.21.dat

这使用
tr
实用程序从文件中删除
^@
(零)字节。

这些字符是nul字节的显示方式,表示它是二进制文件
.dat
表示它也是一个二进制数据文件。你确定你能用普通的文本编辑器打开它吗?你知道你的
sed
命令实际上并没有改变文件,对吗?它将把修改后的数据打印到标准输出,而不是打印回文件。使用
sed-i.bak 2d fort.21.dat
就地编辑文件,或使用
sed 2d fort.21.dat>fort.21.txt
将其写入新文件。