Полная версия

OSS Group


Авторизация

  

Навигация

Текущее местоположение:  OSS Group :: Wiki :: Admin :: Использование awk
Главное меню:   Главная   Документация   Разработка   Контакты   Поиск   Карта сайта   Wiki   Блоги
Разделы Wiki:   Admin  APT  Sandbox

Использование awk

AWK - интерпретируемый язык. Основное назначение: обработка потоков текстовой информации.

Каждая строка, проходящая через AWK, разбивается на поля. Разделитель полей по-умолчанию - пробел, другой разделитель может быть задан или через ключ командной строки -F<delimiter char>, или через встроенную переменную FS:

Встроенные переменные:
''FS'' - разделитель полей
''NF'' - количество полей в текущей строке
''$NF'' - значение последнего поля строки

Примеры использования:

 # cat /var/log/httpd/access_log | awk '{print $1}' | sort | uniq -c
 $ cat /etc/passwd | awk -F: '{print $5}'
 $ cat /etc/passwd | awk 'BEGIN { FS=":"} {print $5}'
 $ cat /etc/passwd | awk 'BEGIN { FS=":" } { split($5,gecos,","); nf=split(gecos[1],name," "); print name[nf], name[1]}'
 #!/bin/bash
 awk -F: '{
    print "dn: cn="$1",ou=People,o=MyOrg,c=US"
    print "objectClass: top"
    print "objectClass: person"
    print "objectClass: organizationalPerson"
    print "objectClass: inetOrgPerson"
    print "objectClass: posixAccount"
    print "objectClass: inetLocalMailRecipient"
    print "objectClass: shadowAccount"
    print "uid: "$1 

    gfields = split($5,gecos,",") 
    namefield = split(gecos[1], fullname, " ") 

    print "sn: " fullname[namefield]
    print "givenName: "fullname[1]
    print "cn: " $1 
    print "userPassword: {crypt}"$2
    print "loginShell: "$7
    print "uidNumber: "$3
    print "gidNumber: "$4
    print "homeDirectory: "$6
    print "gecos: "$5
    print "mail: "$1"@myorg.com" 

    if (gecos[3] != "" && gecos[3] != "NONE")
        print "roomNumber: " gecos[3]

    if (gecos[4] != "" && gecos[4] !~ /.*xx.*/ && gecos[4] !="NONE")
        print "telephoneNumber: "gecos[4] 

    print "displayName: " gecos[1] 
     print "" 
  }'

Ссылки


Дата создания: 2006-05-24 13:35:05 (Фетисов Н. А. (naf))
Последнее изменение: 2006-05-31 19:45:23 (Фетисов Н. А. (naf))
Владелец: Фетисов Н. А. (naf)
Версия: 2  Все версии


 Комментарии (0)


Wiki::Admin   Карта раздела  Оглавление  Изменения за сутки  Изменения за неделю  Изменения за месяц



Быстрый поиск по Wiki:
И ИЛИ

На эту страницу ссылаются:

©2006-2024 OSS Group. All rights reserved. | Техническая поддержка: Открытые Информационные Технологии и Системы