завершать программу linux, когда строки повторяются бесконечно

Программа crunchher.js, связанная с финансированием, имеет проблемы с устранением неполадок. Одной из распространенных проблем (входной сигнал триггера трудно определить и, следовательно, избегать) вызывает этот сценарий отказа:

Downloading account information...
Downloading today orders...
Downloading historical quotes...
Downloading historical quotes...
Downloading historical quotes...
Downloading historical quotes...

Как только строка «Загрузка исторических кавычек ...» повторяется в третий раз, я знаю, что она попала в бесконечный цикл и никогда не выходит, и не пропускает любой случай ввода, который он не может обработать изящно.

Как я могу передать эту программу cruncher.js в | awk , т. Е. Какой встроенный awk-скрипт обнаружил бы на своем входе третью (или вторую, если намного проще) последовательную повторяющуюся строку и завершил бы там?

Или, может быть, вместо awk, используя другие распространенные инструменты Linux / shell?

Всего 1 ответ


вот один из способов

$ yes | awk -v key='y' '{if($0==key)c++; else c=0} c==3{exit}1' 
y
y

замените значение ключа на повторяющееся значение; и yes с вашим генератором потока.


Есть идеи?

10000