Awk by example / Awk в примерах: Part 1: An intro to the great language with the strange name
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
В защиту awk Daemon786 07.02.11 в 11:22 |
|
|
Первая проба ovegio 09.02.11 в 08:24 |
||
|
Давайте двигаться вперед и начнём "играть" с awk, чтобы показать как он работает. В коммандной строке введите следующую команду: en0ne 17.07.11 в 23:47 |
||
|
$ awk '{ print }' /etc/passwd Daemon786 06.02.11 в 19:42 |
||
|
Вы увидите содержимое файла /etc/passwd прямо перед глазами. Теперь, объясню, что сделал awk. Когда мы вызывали команду, мы указали /etc/passwd как входной файл. Когда мы запустили awk, он выполнил команду print для каждой строки в файле /etc/passwd, по порядку. Результат отправился на стадартный вывод (stdout) и мы получили идентичный результат, такой какой получился бы при использовании команды cat /etc/passwd. en0ne 17.07.11 в 23:52 |
||
|
Следующий пример делает то же самое: ovegio 09.02.11 в 08:25 |
||
|
$ awk '{ print $0 }' /etc/passwd Daemon786 06.02.11 в 19:43 |
||
|
$ awk '{ print "" }' /etc/passwd Daemon786 06.02.11 в 19:44 |
||
|
$ awk '{ print "hiya" }' /etc/passwd Daemon786 06.02.11 в 19:45 |
||
|
$ awk -F":" '{ print $1 }' /etc/passwd Daemon786 06.02.11 в 19:46 |
||
|
$ awk -F":" '{ print $1 $3 }' /etc/passwd Daemon786 06.02.11 в 19:46 |
||
|
halt7 Daemon786 06.02.11 в 19:47 |
||
|
$ awk -F":" '{ print $1 " " $3 }' /etc/passwd Daemon786 06.02.11 в 19:47 |
||
|
$ awk -F":" '{ print "username: " $1 "\t\tuid:" $3 }' /etc/passwd Daemon786 06.02.11 в 19:48 |
||
|
username: halt uid:7 Daemon786 06.02.11 в 19:49 |
||
|
$ awk -f myscript.awk myfile.in Daemon786 06.02.11 в 19:49 |
||
|
BEGIN { Daemon786 06.02.11 в 19:50 |
||
|
#!/usr/bin/awk -f Daemon786 06.02.11 в 19:51 |
||
|
$ chmod +x myscript.awk Daemon786 06.02.11 в 19:52 |
||
|
$ ./myscript.awk myfile.in Daemon786 06.02.11 в 19:52 |
||
|
/foo/ { print } Daemon786 06.02.11 в 19:53 |
||
|
Конечно вы можете использовать более сложные регулярные выражения. Вот скрипт, который напечатает только те линии, которые содержат числа с плавающей точкой: en0ne 18.07.11 в 20:04 |
||
|
/[0-9]+\.[0-9]*/ { print } Daemon786 06.02.11 в 19:54 |
||
