Чтобы прояснить ситуацию, я ищу эквивалент
airmon-ng start wlan1
Вы можете добавить интерфейс монитора через iw
команда:
iw phy phy1 interface add mon1 type monitor
Для захвата с помощью интерфейса mon1
, вы можете удалить wlan1
интерфейс
iw dev wlan1 del
Включить mon1
ifconfig mon1 up
Установить частоту :
iw dev mon1 set freq put_the frequency_here
Проверьте это с помощью iwconfig mon1
grep -C $(wc -l foo.txt | cut -d" " -f 1) --color word foo.txt
Где foo.txt
- это путь к файлу, а слово
- это поисковый запрос. Если вы не знакомы с grep
, помните, что поисковый запрос на самом деле является регулярным выражением . Это не имеет значения, если слово
является чисто буквенно-цифровым, но некоторые символы, такие как [
и ]
, имеют особое значение в регулярном выражении, и если вы хотите используйте их буквально, префикс \
. Кроме того, это проходит через оболочку, поэтому $
будет делать забавные вещи, если также не будет экранирован с помощью \
.
Вы можете включить пробелы в слово
, если заключите его в кавычки.
Здесь также используются другие команды wc
и cut
, которые почти всегда будут доступны в системе POSIX, такой как GNU / Linux. У них есть man
страниц, объясняющих их использование.
Вы можете сделать это с помощью grep
. Где file.txt
- ваш файл, а word
- текст, который вы хотите выделить, вы можете использовать:
grep --color -E 'word|$' file.txt
Это соответствует и выделяет вхождения word
. Кроме того, в качестве альтернативы (|
) он сопоставляет и выделяет пустую строку в конце каждой строки ($
). Но поскольку эта строка пустая, никакой дополнительный текст не выделяется.
Совпадение $
в дополнение к word
служит для того, чтобы каждая строка содержала совпадение. Тогда grep
печатает каждую строку, даже без опций -A
, -B
или -C
или каких-либо вызовов других утилит.
Флаг -E
заставляет grep
интерпретировать аргумент шаблона как расширенное регулярное выражение POSIX (ERE). В зависимости от того, какие символы содержатся в слове
, вы можете заставить его использовать вместо этого базовое регулярное выражение (BRE). Хотя чередование с |
официально не является частью базовых регулярных выражений POSIX, реализации grep
часто поддерживают его как расширение с \|
:1
grep --color 'word\|$' file.txt
В частности, в системах GNU/Linux есть GNU Grep, который поддерживает это. Если вы полагаетесь на --color
, то, скорее всего, вы тоже можете рассчитывать на такое поведение.
Эти команды проще, чем способ из ответа goldilocks's answer. Но способ из того ответа имеет явное преимущество в некоторых обстоятельствах. Поскольку в приведенных здесь методах используются |
и $
, они действительно должны быть регулярными выражениями, а не фиксированными строками. Однако, используя метод Златовласки, вы можете добавить флаг -F
. Тогда слово
может содержать любой текст, даже \
, если вы правильно процитируете слово
, чтобы оболочка передала его в grep
без изменений.
Например, вы можете использовать:
grep --color -FC "$(wc -l < file.txt)" 'word' file.txt
Для дальнейшего чтения смотрите Убедите grep выводить все строки, а не только те, в которых есть совпадения (как steeldriver предложил).
1Насколько стандарт (IEEE Std 1003.1-2008) определяет, чередование является особенностью ERE (через |
), но оно не является особенностью BRE. Но реализациям разрешено интерпретировать \|
так, как они хотят, и многие интерпретируют это как чередование:
Некоторые реализации расширили синтаксис BRE, чтобы добавить чередование. Например, подвыражение "
\(foo$\|bar\)
" будет соответствовать либо "foo
" в конце строки или "bar
" в любом месте. Расширение срабатывает при использовании неопределенной последовательности "\|
".