Интерактивные команды с pipe и grep

Интерактивные команды с pipe и grep

Есть такие команды, как top, watch, Airodump-ng, и т. д., которые при каждом запуске все на терминале постоянно меняются. Я хочу запустить одну из этих интерактивных команд, а затем использовать pipe для grep чего-то, что я искал. Возьмем, к примеру, это:

   airodump-ng wlan0 | grep "QQ:AF:00:55:8C:DF"

В этом примере я ищу MAC-адрес. Когда этот MAC-адрес будет обнаружен, он появится на экране, и я смогу выполнить команду grep.

Проблема в том, что это не работает. Я много искал, но безрезультатно.

решение1

Сделать именно это, «greping из интерактивной команды», может быть сложно, если не невозможно, и если вы найдете решение, я думаю, оно будет довольно запутанным.

Сделать это можно, изучив каждую команду, например: в airodump-ng вы можете использовать фильтры.

airodump-ng wlan0 --bssid QQ:AF:00:55:8C:DF --essid home_wifi

это покажет только точки доступа с именем home_wifi и с точным bssid.

решение2

см. также --line-bufferedопцию grep; она заставляет grep выполнять свою проверку каждый раз, когда его stdin видит новую строку

решение3

watchДля этого можно использовать команду .

Например:

sudo watch -n 1 "airodump-ng wlan0 | grep "QQ:AF:00:55:8C:DF"

Связанный контент