Вот ошибка:
dpkg: ошибка обработки архива /var/cache/apt/archives/libimage-magick-q8-perl_8%3a6.9.1-2_amd64.deb (--unpack): попытка перезаписать '/usr/lib/x86_64-linux-gnu/perl5/5.20/auto/Image/Magick/Magick.so', который также находится в пакете libimage-magick-q16-perl 8:6.8.9.9-5 dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
dpkg
отказывается устанавливать пакет, потому что другой пакет владеет файлом /usr/lib/x86_64-linux-gnu/perl5/5.20/auto/Image/Magick/Magick.
По умолчанию dpkg
не будет перезаписывать файлы, принадлежащие другому пакету - а "право собственности" на файлы конкретных пакетов может меняться при переименовании пакетов или реструктуризации коллекции пакетов.
Вам нужно либо запустить apt-get с опцией -o Dpkg::Options::="--force-overwrite", как показано здесь:
apt-get -o Dpkg::Options::="--force-overwrite" ...
или вы можете сделать эту опцию постоянной, добавив ее в /etc/apt/apt.conf или файл в /etc/apt/apt.conf.d/, например так:
DPkg { Options {"--force-overwrite";} };
Специальное -решение с awk может быть примерно таким:
awk '/^header_/ {n=1+1} /^data_/ {n=1+2} n-- > 0; n == 0 {print "---"}' < file
n
устанавливается для совпадающих строк и уменьшается для каждой строки. Строки печатаются, когда n
положителен с разделителем после каждого блока. При указанных выше значениях будет напечатано header_
строк плюс одна следующая строка и data_
строк плюс две следующие строки.
Если блоки контекста могут перекрываться, новое значение n
заменит предыдущее значение. Чтобы этого не произошло, добавьте условия для защиты присваиваний:
awk '/^header_/ {if (n < 2) n=2}
/^data_/ {if (n < 5) n=5}
n-- > 0; n == 0 {print "---"}' < file
Это должно лучше обрабатывать случаи, когда data_
и header_
расположены в последовательных строках.
Я пробовал использовать приведенную ниже команду sed. При тестировании все работало нормально, дайте мне знать, если возникнут какие-либо недоразумения
sed -n -e '/header_/,+1p' -e '/^data_/,+2p' filename
выход
header_one
param1
data_one
data1
data2
header_two
param1
data_two
data1
data2