Сканирование через
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
.
Затем я записал этот конвейер для нахождения непечатаемых символов:
< clam python3 -c 'import sys; [print(repr(line.rstrip("\n"))) for line in sys.stdin]' |
grep -n '\\'
Вывод (где \x00
представляет пустой байт):
542:'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00ن يول 2 11:58:51 EET 2018'
Объяснение:
< clam
- Читать clam
через stdin.python3
- Python 3 поддерживает Unicode исходно, таким образом, это - хороший инструмент для задания.[... for line in sys.stdin]
- Выполните итерации по каждой строке stdin.print(repr(line.rstrip("\n")))
- Распечатайте представление каждой строки, исключая запаздывающую новую строку. Непечатаемые символы будут представлены последовательностью обратной косой черты.grep -n '\\'
- Строки печати, содержащие обратные косые черты плюс номер строки.Обратите внимание, что это - быстрый и грязный способ сделать это.
Для фиксации его просто удалите пустые байты. tr
удобно для этого:
tr -d '\0' < clam > clam.txt
Затем подтвердите, что выходной файл хорош с file clam.txt
. Это говорит clam.txt: UTF-8 Unicode text
, таким образом да, это хорошо.