Сделал операцию при тестировании защиты и выполнил команду rm / usr / bin / clang *

Большинство реализаций grep поддерживают ] -w параметр для совпадения слова :

grep -wF audio.itunes.apple.com

Или для реализации grep (например, Solaris), которая не может использовать -w в комбинации with -F :

grep -w 'audio\.itunes\.apple\.com'

Поиск только строк, содержащих audio.itunes.apple.com , при условии, что перед ним и за ним не стоит словесный символ (word символы являются буквенно-цифровыми или подчеркиванием (ограничены однобайтовыми для версий GNU grep до 2.19)). Некоторые реализации grep , такие как Solaris, также ограничивают совпадающую строку, чтобы она начиналась (хотя и не обязательно заканчивалась) со словесного символа, если только этот не-словесный символ не находится в начале строки (хотя это не имеет значения в данном случае). case в качестве первого символа совпадающей части всегда будет a , символ слова).

Итак, здесь он будет соответствовать на http://audio.itunes.apple.com , потому что / не является символом слова, но не на http: / /streamingaudio.itunes.apple.com как g , предшествующий аудио - это словесный символ.

Эквивалент POSIX:

grep -E '(^[^[:alnum:]_])audio\.itunes\.apple\.com([^[:alnum:]_]|$)'

Или с BRE:

grep -x '\(.*[^[:alnum:]_]\)\{0,1\}audio\.itunes\.apple\.com\([^[:alnum:]_].*\)\{0,1\}'

Некоторые реализации grep , включая GNU grep , поддерживают оператор регулярного выражения \ < который соответствует при переходе между неслово и словом (Solaris grep \ < имеет такое же нечетное дополнительное ограничение, что и для -w выше) . Таким образом, вы можете использовать:

grep '\<audio\.itunes\.apple\.com'

с этими реализациями grep .

2
27.01.2019, 02:08
3 ответа

Вы можете переустановить пакеты с флагом --force-overwrite:

dpkg -i --force-overwrite /var/cache/apt/archives/clang*

Посмотрите кэш для более старых версий, прежде чем использовать clang*.

1
27.01.2020, 22:40

Решено переустановкой ОС. Если кто-то сталкивался с этим и смог решить, дайте знать как.

-1
27.01.2020, 22:40

Проблема в том, что Clang уже установлен, но связан с другим именем.

Если этот код выдает такую ​​ошибку:

cd /var/lib/dpkg/info/
./clang.postinst
update-alternatives: ошибка: альтернативный путь /usr/bin/clang++ не существует

Решением будет редактирование clang.postinst. Измени это:

update-alternatives --quiet \
   --install /usr/bin/c++ \
        c++ \
        /usr/bin/clang++ \
        $prio

update-alternatives --quiet \
    --install /usr/bin/cc \
        cc \
        /usr/bin/clang \
        $prio

К этому:

update-alternatives --quiet \
   --install /usr/bin/clang++ \
        clang++ \
        /usr/bin/c++ \
        $prio

update-alternatives --quiet \
    --install /usr/bin/clang \
        clang \
        /usr/bin/cc \
        $prio

Затем запустите его и протестируйте лязг:

./clang.postinst

clang
clang: fatal error: no input files
compilation terminated.
1
27.01.2020, 22:40

Теги

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