Пара одинарных кавычек не вкладывается друг в друга.
Измените вторые и третьи одинарные кавычки на двойные:
alias by='rsync -avh --omit-dir-times --delete --filter="protect.sync" /media/blueray/Data/_Work/ /media/blueray/Data/_CloudYandex/'
Что бы я сделал:
sudo apt-get remove --purge $(
dpkg -l | awk '$1 == "ii" && /php7/ && !/php7\.0/{print $2}'
)
Чтобы передать переменные в awk , используйте переключатель -v
:
EXCLUDE_VERSION='php7.0'
awk -v exv="$EXCLUDE_VERSION" '$1 == "ii" && /php7/ && $2 !~ exv{print $2}'
Ваше регулярное выражение выглядит некорректно. Он соответствует именам пакетов, содержащим (, не обязательно начинающимся с )"php7", плюс еще один произвольный символ ("." )за которым следует произвольное количество символов, не являющихся ни одним из следующих :p, h, 7,., 0.
Вместо этого вам, вероятно, понадобится следующее регулярное выражение:
sudo apt-get -y remove --purge '^php7\.[^0]'
Это соответствует «php7». в начале (^ )имени пакета плюс любой символ, кроме 0. Могут следовать дополнительные символы, но нам не нужно их учитывать.