Вывод в канал
Вы можете направить печать в канал.
Оператор:
print | "командная_строка"
направляет вывод в "командную_строку". Хотя канал здесь показан как строковая переменная, заключенная в двойные кавычки, командная строка и имена файлов могут приходить из переменных и возвращать значения из функций.
Предположим, вы хотите создать список страна-население так, чтобы страны были отсортированы по алфавиту. Программа awk накапливает значение "количество населения" из 3-го поля для каждого названия страны из 4-го поля и вывод направляет в массив pop. Затем print название каждой страны и ее население направляет вывод команде sort:
BEGIN { FS "\t" } { pop [$4] += $3 } END { for ( c in pop ) print c ":" pop[c] | "sort" }
В результате работы этой программы получим:
Africa:37 Asia:1765 Australia:14 North America:243 South America:142
Во всех этих операторах print, вызывающих перенаправление вывода, файлы или каналы идентифицируются с помощью имен (так, канал в данном примере называется "sort"), но они создаются и открываются один раз при запуске. Так что в последнем примере для всех "c" в "pop" открывается только один канал "sort".
Существует ограничение на число файлов, которые могут быть открыты одновременно. Оператор close (файл) закрывает файл или канал.
Когда открывается или закрывается файл, различные строки являются различными командами.
| |
Comments: info@citmgu.ru Designed by Andrey Novikov Copyright © CIT |