Как заменить число на соответствующую строку (low/high) в bash?

802.11 IEEE - это стандарт для беспроводных сетевых устройств, который определяет набор спецификаций для физического и MAC-уровней модели OSI (если вы хотите узнать больше о сети, вы должны обязательно получить знаком с ней).

Большинство версий обычно работают в диапазоне 2,4 / 5 ГГц и обычно имеют обратную совместимость.

Следующая команда является вариантом ifconfig только для беспроводной сети:

iwconfig

В Ubuntu и Debian она является частью пакета wireless-tools .

ifconfig показывает все доступные (также виртуальные) сетевые интерфейсы, соответствующие стандартам беспроводной и проводной 802.x (802.3x является примером стандарта, используемого в проводных сетях).
iwconfig предназначен исключительно для беспроводных интерфейсов, таких как 802.11x (также поддерживаются некоторые версии до 802.11).

Эти команды также используются для выполнения расширенной настройки ваших интерфейсов. Обратитесь к их руководству для получения дополнительной информации.

Изменить : поскольку iwconfig в настоящий момент устарел (но достаточно прост, чтобы запросить основные функции интерфейса) и новых значительных обновлений не ожидается, я предлагаю вам взглянуть на iw (для которого требуется довольно свежее ядро> = 3.0. У вас не должно возникнуть проблем с его запуском в вашей ОС Ubuntu 15.10).

iw dev

Эта команда возвращает все доступные беспроводные интерфейсы. Затем вы можете запустить iw dev info или iw phy info .
Первая команда показывает краткую информацию об интерфейсе, а вторая показывает все возможности беспроводного устройства.

0
01.12.2018, 08:07
3 ответа

Это делает (строго )то, о чем вы просите:

awk '{ print $1, (($2>2)&&($2<4))?"Low)":"High)" }'

Но он использует тот факт, что строка типа9.0)(с завершающей скобкой )преобразуется в число 9с помощью awk. Это может привести к сбою, если, например, будет добавлен пробел.

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

awk -F'[ )]' '{print $1,(($2>2)&&($2<4))?"Low)":"High)"}'
2
28.01.2020, 02:18

Я пробовал с условием if и else

sed "s/)$//g" filename| awk '{if($2 > 2 && $2 < 4) {$2="low)";print $0}else{$2="high)";print $0}}'
    property(Address1, high)
    property(Address2, low)
    property(Address3, high)
    property(Address4, low)
1
28.01.2020, 02:18

С perlпредполагается, что числа имеют формат [-]<digits>[.<digits>], и сопоставление их, где бы они ни находились во входных данных, при условии, что им не предшествуют и не следуют слово символы (, поэтому Address1не меняется на AddressHigh, например):

<input perl -pe 's{(?<!\w)-?\d[\d.]*(?!\w)}{$& >=2 && $& <=4 ? "Low" : "High"}ge'
1
28.01.2020, 02:18

Теги

Похожие вопросы