завершить программу Linux, когда строки повторяются бесконечно - PullRequest
0 голосов
/ 20 ноября 2018

Финансовая программа, с которой я имею дело, cruncher.js , имеет неприятные ошибки, которые трудно устранить.Одна общая проблема (чей триггерный вход трудно указать и, следовательно, избежать) вызывает этот сценарий сбоя:

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

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

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

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

1 Ответ

0 голосов
/ 20 ноября 2018

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

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

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

...