扫描方式
sudo date >> clam &&
clamscan -r -i --detect-pua --remove /home >> clam &&
date >> clam
返回未打开的文件
错误信息:
Could not open the file /home/alaa/clam.
pluma has not been able to detect the character encoding.
Please check that you are not trying to open a binary file.
Select a character encoding from the menu and try again.
输出uname -a
:
4.15.0-39-generic #42~16.04.1-Ubuntu SMP Wed Oct 24 17:05:15 UTC 2018 i686 athlon i686 GNU/Linux
第 542 行有一堆空字节。我不知道为什么,但我可以告诉你我是如何发现它以及如何解决它的。
首先,我从您的链接下载了文件,然后运行
file clam
,它说clam: data
,这意味着它包含不应出现在 UTF-8 文本文件中的字节/字符,否则会显示UTF-8 Unicode text
.然后我写了这个管道来查找非打印字符:
输出(其中
\x00
表示空字节):说明:
< clam
clam
-通过标准输入读取。python3
- Python 3 原生支持 Unicode,因此它是一个很好的工具。[... for line in sys.stdin]
- 遍历标准输入的每一行。print(repr(line.rstrip("\n")))
- 打印每一行的表示,不包括尾随换行符。非打印字符将由反斜杠序列表示。grep -n '\\'
- 打印包含反斜杠和行号的行。请注意,这是一种快速而肮脏的方法。
要修复它,只需删除空字节。
tr
对此很方便:然后用 . 确认输出文件是否良好
file clam.txt
。它说clam.txt: UTF-8 Unicode text
,所以是的,这很好。