Программирование в стандарте POSIX


Аналоги реляционных операций для текстовых файлов - часть 2


Если минус употреблен многократно, то стандартный ввод читается построчно, циклически по именам - минусам. Любопытно отметить, что стандарт POSIX-2001 предписывает реализациям поддерживать обработку не менее двенадцати исходных файлов.

Рассмотрим несколько примеров. Для выдачи в четыре столбца имен файлов текущего каталога можно воспользоваться конвейером, показанным в пример 6.42.

ls | paste - - - -

Листинг 6.42. Пример использования служебной программы paste. (html, txt)

Для попарного слияния последовательных строк файла целесообразно "сыграть" на том, что список разделителей - кольцевой (см. пример 6.43).

paste -s -d "\0\n" f.txt

Листинг 6.43. Пример использования служебной программы paste с кольцевым списком разделителей. (html, txt)

Если файл не подпадает под определение текстового из-за чрезмерно длинных строк, утилитой cut можно выделить начальные байты, поместив "хвосты" строк в другой файл. В дальнейшем из двух полученных файлов с помощью служебной программы paste можно воссоздать исходный (см. пример 6.44).

cut -b 1-80 -n f > f1.txt cut -b 81- -n f > f2 . . . paste -d '\0' f1.txt f2 > f3

Листинг 6.44. Пример использования служебных программ cut и paste. (html, txt)




Начало  Назад  Вперед



Книжный магазин