Относительно Вашего 1-го вопроса ("просматривающий исходный код, но никакой двоичный файл"): существует несколько опций, которые Вы имеете для распаковывания внутренних двоичных потоков, которые присоединены ко многим объектам.
Мой любимый инструмент для этого является QPDF, доступным на всех крупнейших платформах ОС. Следующая команда распаковывает все потоки и все объектные потоки:
qpdf --qdf --object-streams=disable orig.pdf expanded.pdf
Теперь можно открыть PDF в любом текстовом редакторе. (Там могут все еще быть некоторые двоичные блобы: например, файлы шрифтов и профили ICC, которые не имели бы смысла для QPDF расширяться).
Повторно сжиматься expanded.pdf
снова после редактирования, можно работать:
qpdf expanded.pdf orig2.pdf
(Осторожный при ручном редактировании PDFs! Необходимо знать много об их внутреннем синтаксисе, чтобы сделать это правильно. Как только Вы добавляете или удаляете единственный байт, можно получить сообщения об ошибках от читателей PDF, которые больше не могут мочь открыть его, потому что внутренний TOC PDFs повреждается, который основан на вычислениях байтового смещения. Просто замена Fit
XYZ
строки должны пойти прекрасные, хотя...),
Это не массив, а переменная с именем Array
. Чтобы удалить рядом с последним символом этой переменной, можно воспроизвести с расширением подстроки, например:
$ Array={123},{456}
$ echo "${Array:0:${#Array}-2}${Array:${#Array}-1}"
{123},{45}
Здесь $ {# Array}
обозначает количество символов строки переменной.
Добавить к сказанному Александром (я пока не могу комментировать, к сожалению):
smartctl -x -A -d sat + cciss, 0/dev/sda
Бит sat + получает вам больше, чем просто cciss самостоятельно - в частности, вы должны иметь доступ к отдельным атрибутам, а не только к общему
-121--58825- clamav
по крайней мере на Debian (вы не упоминаете, какой дистрибутив вы используете) не содержит базу данных. Для этого clamav
имеет зависимость от clamav-freshclam | clamav-data
, поэтому убедитесь, что оба они также очищены.