Получение вывода iwconfig в поля

Я только что сделал iwconfig 2>/dev/null | hd и echo $(iwconfig 2>/dev/null) | hd

Оба вывода не имеют четкого разделения между полями и пробелами внутри полей… это все пробелы -.^

На справочной странице не было никакого способа установить разделитель полей iwconfig, поэтому я прочитал исходный код, и его нет, все делается путем объединения sprintf. Я видел скрипт, который замораживал некоторые awk'ы только для того, чтобы получить некоторые значения, и который ожидал точки доступа на iwconfig | awk 'Access point:/ {print $6}', и, поскольку мне пришлось изменить это для моей системы на $4, интересно, если собрать всю информацию, запихнуть ее в неуклюжий вывод, разбор этого по строкам и регулярное выражение по строкам действительно правильный способ сделать это … есть ли альтернатива iwconfig, которая дает ту же информацию, что и хеш, с полезными разделенными полями, именами и значениями?


person rhavin    schedule 19.04.2013    source источник


Ответы (2)


Из оболочки awk или sed могут быть единственным решением. Но если вы пишете программу на C, вы можете использовать команды ioctl, которые на самом деле использует iwconfig для вывода информации, которую вы видите.

Вы также можете попробовать iw. iwconifg заменяется на iw.

person srd    schedule 21.05.2013

Вы можете получить MAC-адрес точки доступа с помощью

iwconfig 2>&1 | sed -n -e 's/^.*Access Point: //p'
person anoopjohn    schedule 07.07.2016