Компьютерные сети и технологии
Привет
Пользователь:

Пароль:



[ ]
[ ]

В сети
Гостей: 7
Участников: 0
На странице: 1
Участников: 3877, Новичок: ritasovurova

Разное

(Занятие 10) awk - язык сканирования и обработки текста
Операционная система UNIX (руководство пользователя)
на Friday 04 August 2006
от список авторов отправить по email статья печатать статья
в Сетевые Операционные Системы ОС > Linux - Unix



10.21. Ввод

Наиболее общим способом подачи ввода программе awk является указание в командной строке имен вводных файлов. Но существуют и другие способы. Они описываются в этом подразделе.

10.21.1. Файлы и каналы

Вы можете поместить вводимые данные в файл, указать awkdata и затем выполнить:

    awk 'программа' awkdata

Если не указано имя файла, то awk читает из стандартного файла ввода. Например, egrep выбирает вводные строки, содержащие указанное регулярное выражение, которое может сделать это быстрее, чем awk, т.к. выполняет только это действие. И мы можем вызвать кроме того канал:

    egrep 'Asia' countries | awk '...'

egrep быстро находит строки, содержащие "Asia" и затем направляет их программе awk для последующей обработки.

10.21.2. Разделители ввода

Если используется значение по умолчанию для разделителей полей FS, то поля вводного файла разделяются символами пробела или табуляции и лидирующие символы пробелов отбрасываются, так что каждая из этих строк имеет следующее первое поле:

           поле 1 поле 2
        поле 1
     поле 1

Если в качестве разделителя полей используется символ табуляции, то лидирующие пробелы не отбрасываются.

Разделитель поля может быть установлен при помощи регулярного выражения при присваивоении значения встроенной переменной FS.

Например:

    BEGIN 

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

Пример.

    awk -F ' (, [\t]*) | ([\t]+)' '...'

а выполняет те же действия, что и в предыдущем примере.

Регулярные выражения используются как разделители поля для поиска самых длинных строк (как в sub()), но не нулевых строк.



Поиск Компьютерные сети и технологии

Copyright © 2006 - 2020
При использовании материалов сайта ссылка на xnets.ru обязательна!