примите выполнение DRAM процессов во внимание при планировании

Вот решение на Perl:

perl -nlE '
    if    (/a/)   { @buffer = ($_) }
    elsif (/xyz/) { push @buffer,$_; say for @buffer }
    else          { push @buffer,$_}
' your_file

Как это работает

Он читает файл построчно и выполняет одно из трех действий:

  1. Если Текущая строка соответствует шаблону a , она присваивает текущую строку массиву @buffer .
  2. Если текущая строка соответствует шаблону xyz , она помещает текущую строку в буфер и печатает его содержимое.
  3. Если ни один из двух вышеуказанных случаев не соответствует действительности, он просто добавляет текущая строка в массив @buffer .

Таким образом, всякий раз, когда новая строка соответствует шаблону a , содержимое @buffer стирается и заменяется только текущей строкой. Это гарантирует, что вы найдете ближайший a , предшествующий xyz .

Вы, конечно, должны заменить регулярные выражения, которые я использовал, на настоящие регулярные выражения, относящиеся к вашему случаю.

1
12.12.2014, 01:24
1 ответ

Если процесс делает много памяти IO, то это будет перевести в использование много времени процессора, поэтому планировщик будет приходится для него, косвенно.

1
27.01.2020, 23:51

Теги

Похожие вопросы