从给定文件中删除控制 M 字符,并删除换行符(如果它是整个文件中唯一的字符)

从给定文件中删除控制 M 字符,并删除换行符(如果它是整个文件中唯一的字符)

我们有一个名为 abc.txt 的文件,它是一个空文件。由于一些垃圾或控制 M 字符,文件大小被填充为 5 字节文件。为了获得干净的文件,我们使用 dos2unix 命令来删除未知字符。使用 dso2unix 命令后,我们可以看到文件大小为 1 个字节,因为它只包含一个换行符。如果换行符是整个文件中唯一的字符,我可以知道如何删除它吗?

解决方法:

cat abc.txt 

cat -v abc.txt
M-oM-;M-?^M

ll abc.txt
-rw-r--r-- 1 ORAPRD ADMIN 5 Jan 25 07:08 abc.txt

dos2unix abc.txt
dos2unix: converting file abc.txt to Unix format ...

ll abc.txt
-rw-r--r-- 1 shpprd ADMIN 1 Jan 25 07:09 abc.txt

cat -v abc.txt

od -c abc.txt
0000000 \n 
0000001

有人对此有解决方案吗?

谢谢。

答案1

dos2unix abc.txt已成功将 DOS 文本文件转换为 Unix 文本文件。

该文件仍包含换行符。这在文本文件中是完全有效的。它只是一行空文本。

如果你想完全截断文件,那么

>abc.txt

在 shell 中就可以做到这一点。


要删除文件末尾的空行,请参阅“如何删除 EOF 处的多个换行符?”。

相关内容