Скажем, у Вас есть следующий файл:
testline1
testline2
NETWORKLIST
line with spaces, just in case
and with tabs
+++NETWORKLIST+++
thisisrelevant
thistoo
+++ANOTHERSECTION+++
someirrelevanttext
И Вы хотите извлечь только раздел NETWORKLIST как это:
+++NETWORKLIST+++
thisisrelevant
thistoo
Затем Ваше sed заклинание, чтобы сделать это:
sed -n '/+++NETWORKLIST+++/,/^+/ { x; /^$/! p; }' testfile
Это - шаблон диапазона адресов:
/+++NETWORKLIST+++/,/^+/
Это будет соответствовать всем строкам, запускающимся в +++NETWORKLIST+++
и окончание в строке, запускающейся с +
.
Затем прибывает команды:
{
открывает список команд (он обычно не замечается, поскольку большинство пользователей sed на самом деле использует единственную команду после соответствия).
x;
обменивается содержанием пространства хранения и пространства шаблона (см., что Понятие 'Содержит пространство' и 'Пространство шаблона' в sed).
Затем мы хотим распечатать непустые строки: /^$/! p;
Кроме того, близкий список команд: }
Почему это обменивается? Ну, после соответствия диапазону нас оставляют с этим входом:
+++NETWORKLIST+++
thisisrelevant
thistoo
+++ANOTHERSECTION+++
Но мы не интересуемся заголовком раздела для следующего раздела.
Таким образом мы говорим sed помещать каждую строку на пространство хранения.
Если файл имел раздел ближе такой как ---NETWORKLIST---
мы просто сделали бы:
sed -n '/+++NETWORKLIST+++/,/^-/ p'
Или даже это, если мы не хотим финализатор раздела:
sed -n '/+++NETWORKLIST+++/,/^-/ {/^-/d; p}'
Но если бы мы пробуем это за вход OP, мы освободили бы заголовок раздела от соответствующего раздела.
Путем выполнения x
на каждом шаге мы эффективно пропускаем последнюю строку диапазона:
+++NETWORKLIST+++
, HoldSpace =^$
. Exchange ихthisisrelevant
, HoldSpace =+++NETWORKLIST+++
. Exchange их, печать PatternSpacethistoo
, HoldSpace =thisisrelevant
. Exchange их, печать PatternSpace^$
, HoldSpace =thistoo
. Exchange их, печать PatternSpace+++ANOTHERSECTION+++
, HoldSpace =^$
. Exchange их.Оставьте комментарий, если это неясно, или я использовал неправильное название sed понятия.
Эта версия файла libssl.so.1.0.0
, похоже, недоступна в стандартной системе F20. Вот что я получаю, когда ищу его на своем ноутбуке:
$ repoquery -qf */libssl.so.1.0.0
hipchat-0:2.2.1163-1.x86_64
hipchat-0:2.2.1163-1.i386
Он доступен только из этого стороннего пакета, hipchat
. Таким образом, приложение, которое вы пытаетесь создать, похоже, было написано / настроено для использования этой конкретной версии этой библиотеки.
У меня возникнет соблазн задать этот вопрос на основном сайте проекта, поскольку это, похоже, проблема с исходным кодом.
Сначала нужно установить openssl-libs...
После этого libssl.so.1.0.0 должен быть в /usr/lib
.