Системная политика запрещает сканирование Wi-Fi (и корневой доступ для питания)

Предполагая, что ваши данные находятся в файле с именем file, следующая команда будет читать каждую строку этого файла и выводить три ее столбца в формате, который вы предписываете:

$ awk '{ printf("%s Free\n%s Used\n%s Utilised\n", $1, $2, $3) }' file
62G Free
57G Used
52% Utilised

Для каждой строки ввода будет выполняться блок в коде. Этот блок содержит один оператор printf(), который форматирует три столбца, разделенных пробелами -, в три строки с добавленным текстом.

Сделать это с помощью sedбыло бы не невозможно, но излишне сложно:

$ sed -e 's/[[:blank:]][[:blank:]]*/:/g' -e 's/:/ Free@/' -e 's/:/ Used@/' -e 's/%/% Utilised/' -e 'y/@/\n/' file
62G Free
57G Used
52% Utilised

Сначала все пробельные символы будут сжаты в одиночные :символы, а затем вставлены нужные добавленные текстовые строки, заменяя эти :символы один за другим. При вставке мы также добавляем символы @везде, где хотим позже вставить новую строку. В качестве последнего шага мы меняем все вставленные символы @на новые строки.

Обратите внимание, что с GNU sed,что позволяет использовать \nв замещающей части команды s///, вы можете сделать ее короче:

$ gsed -E -e 's/[[:blank:]]+/:/g' -e 's/:/ Free\n/' -e 's/:/ Used\n/' -e 's/%/% Utilised/' file
62G Free
57G Used
52% Utilised

Оба этих sedрешения основаны на том факте, что мы можем использовать :и @в качестве временных «символов-заполнителей» в строке и что они больше нигде в ней не встречаются.

1
11.06.2020, 05:51
1 ответ

Ответ может быть немного запоздалым. У меня сейчас такая же проблема с настройкой WiFi с Fedora 33 на Raspberry Pi 4. Я использую noвместо yesв следующем, чтобы решить проблему:

<allow_any>no</allow_any>

Надеюсь, что это поможет.

0
18.03.2021, 23:28

Теги

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