Awk by example / Awk в примерах: Part 1: An intro to the great language with the strange name

← →
Английский оригинал Перевод на русский

Сожалеем, но текст оригинала доступен только зарегистрированным пользователям.

В защиту awk

Daemon786 07.02.11 в 11:22

0

Первая проба

ovegio 09.02.11 в 08:24

0

Давайте двигаться вперед и начнём "играть" с awk, чтобы показать как он работает. В коммандной строке введите следующую команду:

en0ne 17.07.11 в 23:47

0

$ awk '{ print }' /etc/passwd

Daemon786 06.02.11 в 19:42

0

Вы увидите содержимое файла /etc/passwd прямо перед глазами. Теперь, объясню, что сделал awk. Когда мы вызывали команду, мы указали /etc/passwd как входной файл. Когда мы запустили awk, он выполнил команду print для каждой строки в файле /etc/passwd, по порядку. Результат отправился на стадартный вывод (stdout) и мы получили идентичный результат, такой какой получился бы при использовании команды cat /etc/passwd.

en0ne 17.07.11 в 23:52

0

Следующий пример делает то же самое:

ovegio 09.02.11 в 08:25

0

$ awk '{ print $0 }' /etc/passwd

Daemon786 06.02.11 в 19:43

0

$ awk '{ print "" }' /etc/passwd

Daemon786 06.02.11 в 19:44

0

$ awk '{ print "hiya" }' /etc/passwd

Daemon786 06.02.11 в 19:45

0

$ awk -F":" '{ print $1 }' /etc/passwd

Daemon786 06.02.11 в 19:46

0

$ awk -F":" '{ print $1 $3 }' /etc/passwd

Daemon786 06.02.11 в 19:46

0

halt7
operator11
root0
shutdown6
sync5
bin1
....etc.

Daemon786 06.02.11 в 19:47

0

$ awk -F":" '{ print $1 " " $3 }' /etc/passwd

Daemon786 06.02.11 в 19:47

0

$ awk -F":" '{ print "username: " $1 "\t\tuid:" $3 }' /etc/passwd

Daemon786 06.02.11 в 19:48

0

username: halt uid:7
username: operator uid:11
username: root uid:0
username: shutdown uid:6
username: sync uid:5
username: bin uid:1
....и т.д.

Daemon786 06.02.11 в 19:49

0

$ awk -f myscript.awk myfile.in

Daemon786 06.02.11 в 19:49

0

BEGIN {
FS=":"
}
{ print $1 }

Daemon786 06.02.11 в 19:50

0

#!/usr/bin/awk -f
BEGIN {
FS=":"
}
{ print $1 }

Daemon786 06.02.11 в 19:51

0

$ chmod +x myscript.awk

Daemon786 06.02.11 в 19:52

0

$ ./myscript.awk myfile.in

Daemon786 06.02.11 в 19:52

0

/foo/ { print }

Daemon786 06.02.11 в 19:53

0

Конечно вы можете использовать более сложные регулярные выражения. Вот скрипт, который напечатает только те линии, которые содержат числа с плавающей точкой:

en0ne 18.07.11 в 20:04

0

/[0-9]+\.[0-9]*/ { print }

Daemon786 06.02.11 в 19:54

0
Минутку...

Следующая страница →