Как получить первую строку после совпадающей строки независимо от наличия строки

ДжоСлав

Скажем, у меня есть это в качестве ввода:

..pattern1...this
..pattern1...1
..pattern1...2
...

Или же

..pattern1...0
..pattern2...0
..pattern1...1
..pattern2...1
..pattern2...2
..pattern1...this
...

Т.е. список строк, содержащий только два типа шаблонов (строк). Я пытаюсь получить первую строку pattern1после последней строки pattern2. Если нет pattern2тогда первая строчка pattern1. Пример вывода для обоих случаев:

 ..pattern1...this

Я могу выполнить любой из этих случаев отдельно sed( как в этом ответе ), но мне не удалось получить команду, которая выполняла бы оба объявления одновременно.

Кто-нибудь может вмешаться и протянуть руку помощи? Благодаря!

Anishsane
awk '/pattern1/ && !line{line=$0} /pattern2/{line=""} END{print line}' file
  1. Когда pattern1будет найдено, установите lineпеременную на всю строку.
  2. Когда мы снова найдем pattern1, игнорируйте его. (поскольку lineуже будет установлено.)
  3. Когда pattern2найдено, сбросить lineпеременную, чтобы учитывалась следующая ошибка pattern1.

И в ответе Эда Мортона уже упоминалось, как обрабатывать, если вам нужно точное совпадение строк или если вы хотите взять шаблон из переменной оболочки. Добавляю свой ответ только для того, чтобы предположить, что использования tacможно избежать.

Эта статья взята из Интернета, укажите источник при перепечатке.

Если есть какие-либо нарушения, пожалуйста, свяжитесь с[email protected] Удалить.

Отредактировано в
0

я говорю два предложения

0обзор
Войти в системуУчаствуйте в комментариях

Статьи по теме

TOP список

  1. 1

    Распределение Рэлея Curve_fit на Python

  2. 2

    TypeError: store.getState não é uma função. (Em 'store.getState ()', 'store.getState' é indefinido, como posso resolver esse problema?

  3. 3

    В типе Observable <unknown> отсутствуют следующие свойства из типа Promise <any>.

  4. 4

    Как добавить Swagger в веб-API с поддержкой OData, работающий на ASP.NET Core 3.1

  5. 5

    How to click an array of links in puppeteer?

  6. 6

    Merging legends in plotly subplot

  7. 7

    ViewPager2 мигает / перезагружается при смахивании

  8. 8

    Отчеты Fabric Debug Craslytic: регистрация, отсутствует идентификатор сборки, применить плагин: io.fabric

  9. 9

    How to normalize different curves drawn with geom = "step" when using stat_summary

  10. 10

    无法通过Vue在传单中加载pixiOverlay

  11. 11

    как я могу удалить vue cli 2?

  12. 12

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

  13. 13

    SQL Вычтите две строки друг от друга в одном столбце, чтобы получить результат

  14. 14

    Elasticsearch - Нечеткий поиск не дает предложения

  15. 15

    Single legend for Plotly subplot for line plots created from two data frames in R

  16. 16

    Описание моего типа Parser как серии преобразователей монад

  17. 17

    Как изменить цвета запятых и скобок в VS Code

  18. 18

    Сброс значения <input type = "time"> в Firefox

  19. 19

    Почему прокси в vue.config.js 404

  20. 20

    Как установить параметр -noverify с gradle ktx для робоэлектрических тестов Android?

  21. 21

    В чем разница между ifstream, ofstream и fstream?

популярныйтег

файл