Проект «SnakeProject» Михаила КозловаРегистрация

Навигация
⇒FreeBSD and Nix⇒

⇐CISCO
⇐Voice(Asterisk\Cisco)
⇐Microsoft
⇐Powershell
⇐Python
⇐SQL\T-SQL
⇐1С
⇐Общая
⇐WEB Разработка
⇐ORACLE SQL \ JAVA

AWK, простые примеры


Рассмотрим основные возможности команды(по сути языка программирования) - "AWK"

Формат ее таков: awk 'условие { действие }' , где условие является необязательным аргументом.

Примеры:

Вывод определенных стобцов:
[root@centos ~]# ps
  PID TTY          TIME CMD
42358 pts/0    00:00:00 bash
42710 pts/0    00:00:00 ps

[root@centos ~]# ps | awk ' {print $1,$3} '
PID TIME
42358 00:00:00
42711 00:00:00
42712 00:00:00

Вывод всех столбцов с фильтром по условию:
[root@centos ~]# ps | awk ' /'bash'/ {print $0} '
42358 pts/0    00:00:00 bash

Вывод строк из файла с уловием по длинне:
[root@centos ~]# awk 'length($0) > 2' test.txt
436

Вывод случайных чисел с помощью цикла for:
[root@centos ~]# awk 'BEGIN { for (i = 1; i <= 5; i++) print int(i * rand()) }'
0
0
2
0
2

Вывод в килобайтах суммы всех файлов в директории:
[root@centos ~]# ls -l | awk '{ total += $5 } ; END { print "total kilobytes: " (total + 1023)/1024 }'
total kilobytes: 2.26074

Вывод информации о сетях из файла с указанием разделителя межу полями:
[root@centos ~]# awk -F " " '{ print $2 }' /etc/networks
0.0.0.0
127.0.0.0
169.254.0.0

Вывести каждую нечетную строку из файла:
[root@centos ~]# cat /etc/networks | awk 'NR % 2 != 0'
default 0.0.0.0
link-local 169.254.0.0

Вывести их файла строки, в которых есть 2 или 6:
[root@centos ~]# cat test.txt | awk '/2/ || /6/'
2
27
436
27


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

© Snakeproject.ru создан в 2013 году. При копировании материала с сайта - оставьте ссылку.


Яндекс.Метрика

Goon Каталог сайтов Рейтинг@Mail.ru