sed перестает извлекать оставшееся содержимое после появления символа перевода строки - PullRequest
0 голосов
/ 10 декабря 2018
sed -nE "s/(IMAGE)(.*)/\1\2/p" somefile > sfh.raw

somefile содержит случайные ASCII, а также двоичные данные после изображения.Приведенная выше команда sed работает, если в файле нет двоичных данных новой строки.Если есть новая строка, она выводит только до новой строки, игнорируя остальную часть файла.

Есть ли способ, которым мы можем заставить sed (. *) Перехватывать все, включая новую строку, и продолжать до концанекоторого содержимого.

IMAGE254656
   dsfdfdl;flkdfldsfkdsfkdlsfdfldfkdsfo;dsfkldsfdsfsd

1 Ответ

0 голосов
/ 10 декабря 2018

Рассмотрите возможность использования awk для этого:

awk '/^IMAGE/{i=1}i' somefile

awk обрабатывает файл построчно и позволяет вам устанавливать переменные и проверять содержимое и множество других очень причудливых вещей для каждой строки.

Этот скрипт проверяет каждую строку, чтобы определить, начинается ли она с IMAGE.Если это так, он устанавливает переменную i в 1.Затем он проверяет, установлена ​​ли i.Если это так, он по умолчанию печатает строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...