awk присваивает несколько переменных одновременно

Primero aprenda sobre LDAP y sus esquemas básicos. Luego configure LDAP y agregue sus usuarios a LDAP.

Aunque está fechado, los Proyectos de documentación de Linux LDAP HOWTO cubren los conceptos básicos. LDAP realmente no ha cambiado desde que se escribió este documento. Uso mucho el libro LDAP de Zytrax .

OpenLDAP ha cambiado mucho desde entonces y ahora almacena la mayor parte de su configuración en su base de datos.

Hay al menos dos paquetes que completarán un esquema LDAP con sus usuarios y grupo. Búscalos en el administrador de paquetes.

Una vez que tenga sus usuarios en LDAP, puede configurar NSS para proporcionar datos de usuarios y grupos desde su servidor LDAP.

Configuro un usuario local en cada servidor en el sistema basado en archivos estándar. Esto se usa para recuperar el sistema si rompo LDAP.

9
21.03.2019, 19:03
4 ответа

Обратите внимание, что gensubявляется расширением gawk, оно не будет работать ни с одной другой реализацией awk. Также обратите внимание, что унарный оператор +не приводит к принудительному числовому преобразованию во всех реализациях awk, использование + 0более переносимо.

Здесь можно сделать:

tmux -V | awk -F '[.]' '{maj = $2+0; min = $3+0; print maj, min}'

Если вы не возражаете против использования расширений GNU awk, вы также можете:

tmux -V | awk -v FPAT='[0-9]+' '{maj = $1; min = $2; print maj, min}'
9
27.01.2020, 20:04

Вы можете разделить версию на массив:

awk '{ split($2, ver, /[.a-z]/) }'

, затем используйте ver[1]вместо maj, ver[2]вместо min.

Добавление a-zк разделителю удаляет все строчные буквы из номера версии. (Другие решения здесь лучше, поскольку они явно извлекают числа.)

5
27.01.2020, 20:04

Поскольку вы используете GNU awk, вы можете использовать форму 3 -аргументов match()для хранения нескольких групп захвата:

awk '
    match($0, /([0-9]+)\.([0-9]+)/, m) {maj=m[1]; min=m[2]; print maj, min}
' <<END
tmux 2.8
tmux 1.9a
tmux 2.10
END
2 8
1 9
2 10

https://www.gnu.org/software/gawk/manual/html_node/String-Functions.html

13
27.01.2020, 20:04

Другой пользователь разместил этот ответ, но позже он был удален. Я подумал, что это полезно:

Используя функцию split(), разделите строку версии на массив ver, затем получите доступ к ver[1]и ver[2], а не к majи min, соответственно (или просто сохраните значения в эти переменные):

tmux -V | awk '{ split($2, ver, /[.a-z]/); print ver[1], ver[2] }'

Плюс здесь в том, что split()не является gawkрасширением (, хотя его необязательный четвертый аргумент sepsравен ).

3
27.01.2020, 20:04

Теги

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