awk читать между двумя отдельными строками и отбрасывать остальные

Я использую awk чтобы просто читать текст между двумя строками «Проверить» и «Результат». Я использовал множество вариаций, найденных в Интернете, и до сих пор не может получить благоприятный результат. Я пробовал:

 awk "/Check:/,/Result:/ {print}" BMSCA209-040-transfer-report.18-Jun-2014.11:18.csv.tmp | more 

И я также попробовал:

 sed -n "/Check:/,/Result:/p" BMSCA209-040-transfer-report.18-Jun-2014.11:18.csv.tmp | more 

И до сих пор я не получаю то, что хочу. Каждый раз, когда я его получаю, это то, что я получаю:

 ata> <data fieldName="Timepoint ID" value="B01 SCREENING"/> <data fieldName="SQCSummary" value=" Nothing Submission Quality and Compliance Report - 201 4-06-03T14:30:00.547-07:00Check: Ensure slice thickness is between 2mm and 5mmResult: FailReason: Image(s) found with slice thickness out of range. Instanc e 1.2.840.113619.2.55.3.4094358250.93.1395417628.479.369 found with slice thickness out of range : 1.25 Instance 1.2.840.113619.2.55.3.4094358250.93.139541 7628.479.368 found with slice thickness out of range : 1.25 Instance 1.2.840.113619.2.55.3.4094358250.93.1395417628.479.367 found with slice thickness out of range : 1.25 Instance 1.2.840.113619.2.55.3.4094358250.93.1395417628.479.366 found with slice thickness out of range : 1.25 Instance 1.2.840.113619.2. 55.3.4094358250.93.1395417628.479.365 found with slice thickness out of range : 1.25 Instance 1.2.840.113619.2.55.3.4094358250.93.1395417628.479.364 found with slice thickness out of range : 1.25 Instance 1.2.840.113619.2.55.3.4094358250.93.1395417628.479.363 found with slice thickness out of range : 1.25 I nstance 1.2.840.113619.2.55.3.4094358250.93.1395417628.479.362 found with slice thickness out of range : 1.25 Instance 1.2.840.113619.2.55.3.4094358250.93. 1395417628.479.361 found with slice thickness out of range : 1.25 Instance 1.2.840.113619.2.55.3.4094358250.93.1395417628.479.360 found with slice thicknes 

У кого-нибудь есть другие предложения?

  • sed: вставка текста перед концом раздела <HEAD>
  • Почему sed дает мне ошибку в отношении неиспользуемого `s '?
  • Как разделить строки vCards
  • Легко получить конкретный столбец из вывода без sed или awk
  • sed: удалить все совпадения в файле и вставить некоторые строки, в которых первое совпадение было
  • Считайте строки с определенным целым числом в столбце
  • Shell Script для удаления двойных кавычек в пределах значения столбца
  • Замените шаблон в файле длинной строкой
  • 2 Solutions collect form web for “awk читать между двумя отдельными строками и отбрасывать остальные”

    С perl :

     perl -l -0777 -ne 'print for /Check: (.*?)Result:/gs' < file 

    С GNU grep эквивалент (почти) эквивалентен:

     grep -zPo '(?s)Check: \K.*?(?=Result:)' < file 

    Или с pcregrep :

     pcregrep -Mo1 '(?s)Check: (.*?)Result:' < file 

    Вывод:

     Ensure Modality is the same for all images in a DICOM series. Ensure SeriesDate is in the proper DICOM format (YYYYMMDD) for all images. [...] 

    Мое решение вашей проблемы:

    Используйте команды grep и bash, например:

     RES="$(cat BMSCA209-040-transfer-report.18-Jun-2014.11:18.csv.tmp | egrep -o 'Check.*Result')" RES=${RES%Result} RES=${RES#Check: } echo $RES 

    Это оно 🙂

    Результат:

     Ensure slice thickness is between 2mm and 5mm 
    Interesting Posts

    Используя стандартизацию, нужно, чтобы первая строка имела разный размер шрифта

    Как настроить Linux Mint 18.2 для Captive WiFi Access Point без доступа в Интернет

    Как автоматически загружать tmux при входе в систему, но нет, если уже внутри tmux?

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

    Безопасно удалить Ubuntu-минимальный пакет?

    Каков правильный способ стабильного управления терминалом bash?

    запись общего времени выполнения в сценарии bash

    Поиск слов с определенными характеристиками в файле словаря

    Как установить последнюю версию nodexs версии 6.x или 7.x (апрель 2017 г.) в системе sid / stretch?

    Терминал Arch Linux не запускается

    Повторение stdin при запуске ed (1) скрипта

    Не удалось подключиться к шине: Не удалось подключиться: соединение отклонено

    Могу ли я объединить SAS и SATA HDD вместе с LVM?

    zsh нечувствительность к регистру в середине слова

    Bash, когда нужно использовать $ @, "$ @" и $ {1 + "$ @"}

    Linux и Unix - лучшая ОС в мире.