Попробуйте следующее:
apt-get update; apt-get purge libapache2-mod-mono; apt-get -f install; apt-get install libapache2-mod-mono
Если это не поможет, прочтите здесь:
Как запустить mod_mono в Debian Jessie (отсутствует пакет libapache2-mod-mono)?
1,/.../
означает диапазон от 1-й строки до строки, соответствующей шаблону между /
.
/^[ ]*$/
соответствует строке, содержащей 0 или любое количество пробелов [ ]*
от начала ^
до конца $
строки.
Неясно, является ли код в вопросе преднамеренным и является ли он точной копией книги. Скобки вокруг одного пробела не нужны. Возможно, первоначальный автор хотел, чтобы между скобками был пробел и символ табуляции, который можно было бы заменить классом символов [[:blank:]]
.
d
— команда удаления строки
w
записать файл
q
выйти из редактора
Эти команды отправляются на ed
через здесь документ , обозначенный как << EOF
. Строка EOF
представляет собой полу-произвольное имя, которое соединяется с другим EOF
четырьмя строками ниже. Если EOF
оставить без кавычек, это означает, что любые переменные в промежуточных строках будут расширены.
Еще одна вещь, на которую следует обратить внимание, это $1
в примере без кавычек. Команда/скрипт ed
будет выполняться для первого позиционного параметра (аргумента скрипта или функции)при условии дальнейшего разделения пробелов и создания имени файла . Аргумент действительно должен быть процитирован. Для получения дополнительной информации см. . Почему мой сценарий оболочки забивается пробелами или другими специальными символами? и Последствия для безопасности, если забыли заключить переменную в кавычки в оболочках bash/POSIX .
$1
— это имя файла, который нужно отредактировать, а все, что находится между EOF, — это команды для ed
.
1,/^[ ]*$/d
1,
начать со строки1
и в этом случае продолжить до первого появления строки поиска/
указывает, что мы собираемся искать строку ^
указывает, что мы хотим сопоставить начало строки в файле [
указывает, что мы собираемся указать много символов
' мы хотим сопоставить пробел -обычно здесь было бы больше символов ]
завершено задание символов *
мы хотим сопоставить 0 или более пробелов (или любых других символов между[]
)$
до конца строки в файле /
закрытие поиска d
удалить строку Затем следующая строка w
записывает изменения, и q
завершает работу ed
.
Если первая строка файла($1
)пуста или содержит только пробелы (без вкладок ), то она будет удалена.