
Есть такие команды, как 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"