Я создал оператор, который ищет определенную информацию в каждой строке (в моем случае "AAA", "BBB" или "CCC"), если такой информации нет. N/A печатается
{k = 0; для (i = 1; i <= NF; i++) if ($ i == "AAA") {print $ i; к ++}
иначе if ($ i == "BBB") {print $ i; к ++}
иначе if ($ i == "CCC") {print $ i; к ++}
если (k == 0) выведите «N /A»}
Проблема появляется, когда есть две или более "AAA" в одной строке. Это печатает меня все найденные AAA, и я хотел бы прекратить поиск после первого поиска.
Кроме того, я хотел бы прекратить проверять другие операторы (для BBB или CCC), когда условие AAA истинно.
Например, скажем, у меня есть такой вход:
первая линия ввода имеет ААА
вторая строка имеет AAA и AAA
третья строка имеет BBB и
четвертая строка имеет CCC
пятая строка имеет AAA и CCC
Последняя линия
в выводе хочу:
AAA #(с первой строки)
AAA #(из второй строки, но только первый найден, я не хочу, чтобы два AAA печатались)
ВВВ
CCC
AAA #(он обнаружил AAA и остановил проверку состояния для CCC)
N/A #(в этой строке нет AAA, BBB или CCC)
С уважением, Лукас