Пара трюков, которые я использовал с выводом, подобным вашему.
grep
Обратите внимание, что нужные вам строки не содержат строку P00001121
. Зная это, вы можете grep
показать все строки, где эта строка отсутствует:
$ grep -v P00001121 afile
Server: Apache-Coyote/1.1\r\n
Content-Type: text/xml;charset=UTF-8\r\n
Content-Length: 878\r\n
Date: Thu, 01 Aug 2019 04:33:45 GMT\r\n
\r\n
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"/>
sed
Вы можете использовать sed
для выбора всех строк между двумя паттернами. Здесь я использую sed -n
, чтобы подавить поведение sed
по умолчанию для печати каждой строки ввода. Затем мы сообщаем sed
о том, что нужно сопоставить любые строки между двумя шаблонами, а затем печатать их(/p
).
$ sed -n '/pattern1/,/pattern2/p' afile
$ sed -n '/^.*Server/,/^\\r\\n/p' afile
Server: Apache-Coyote/1.1\r\n
Content-Type: text/xml;charset=UTF-8\r\n
Content-Length: 878\r\n
Date: Thu, 01 Aug 2019 04:33:45 GMT\r\n
\r\n