Выполнена неверная команда sed. Все файлы исходного кода испорчены

Я обычно использую

sudo apt purge **package-name**

сделать это. Я сделал это прямо сейчас в качестве теста, пытаясь удалить окуляр, и он отметил только кил , кил -l10n и окуляр для удаления(кил зависит от окуляра для запуска ). Вы пробовали это?

И если он попытается удалить все, вы можете согласиться с этим (на консоли, а не внутри Plasma ), а затем установить kde -baseapps , чтобы установить только минимальный. Оттуда вы можете установить другие пакеты, которые вы хотите.

Но я не понял, почему вы считаете okular и gwenview вирусами. Вы не открываете файлы PDF или изображения? Или вы используете другое программное обеспечение для этого?

3
20.08.2021, 11:41
2 ответа

/s/ — это адрес регулярного выражения, который соответствует любой строке, содержащей символ s. В GNU sed itextявляется расширением стандарта

.
i\
text

, что i вставляет textпосле адресуемой строки. Итак, ваша команда вставила текст cap_infos/icap_servers/gперед любой строкой, содержащей s.

Предполагая, что ваши исходные файлы не содержали таких файлов, вы должны иметь возможность отменить их, используя

sed -i.old '\:^cap_infos/icap_servers/g$:d' *

- d удалите строки, точно соответствующие cap_infos/icap_servers/g. Обратите внимание на использование альтернативного разделителя :(, представленного \:), поскольку сам шаблон содержит разделитель по умолчанию /. Текущие файлы будут скопированы с суффиксом .oldна случай, если это не сработает и вам нужно попробовать что-то другое.

В будущем заведите привычку -запускать команды sed всухую без предварительного-iи/или делать резервные копии с использованием -i.bakвместо простого -i.

9
20.08.2021, 12:26

/s/интерпретируется как адрес, поэтому следующая команда будет применяться только к строкам, содержащим s. Эта следующая команда — i, вставляющая следующий текст, а именно cap_infos/icap_servers/g.

Три дела:

  1. Поскольку маловероятно, что у вас намеренно есть строки, содержащие только cap_infos/icap_servers/g, вы можете снова удалить их с помощью sed '/^cap_infos\/icap_servers\/g$/d'(, вы адресуете что dудалить)
  2. Выполните задуманное изменение
  3. Научитесь всегда проверять изменения перед использованием опции -iв будущем
5
20.08.2021, 12:26

Теги

Похожие вопросы