Большинство реализаций 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
.
Вы можете переустановить пакеты с флагом --force-overwrite
:
dpkg -i --force-overwrite /var/cache/apt/archives/clang*
Посмотрите кэш для более старых версий, прежде чем использовать clang*
.
Решено переустановкой ОС. Если кто-то сталкивался с этим и смог решить, дайте знать как.
Проблема в том, что 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.