Если у Вас есть GNU sed (таким образом, не встроил Linux или Cygwin):
sed '/bar/,+1 d'
Если Вы имеете bar
на двух последовательных строках это удалит вторую строку, не анализируя его. Например, если у Вас есть файл с 3 строками bar
/bar
/foo
, foo
строка останется.
sed 'N;s/\n/ /'
N
соединяет затем входную строку с пространством шаблонаs/\n/ /
заменяет новую строку, которая разделяет строки с пространством.или:
sed -n 'N;s/\n/ /;/regex/p'
-n
отключает автоматическую печать пространства шаблона как последняя команда/regex/p
строки печати, соответствующие regexИспользуйте g
модификатор для замен в случае, если Вы присоединяетесь больше чем к двум строкам, например. N;N;N;s/\n/ /g
.
Кажется что apt-get
строки имеют предыдущий пробел. Высказывание:
sed -e :a -e '$!N;s/\n / /;ta' -e 'P;D' inputfile
должен привести к желаемому результату.
С другой стороны, можно также использовать paste
:
paste -d' ' - - < inputfile