Next: 7.20 tr - перекодировка
Up: 7. Программы преобразования и
Previous: 7.18 comm - сравнить
Использование программы:
cut option... file...
программа выводит на устройство стандартного вывода
часть каждой строки из входного потока.
В нижеследующей таблице используются обозначения: byte-list, character-list, field-list, которые представляют собой последовательность чисел -- одно число или несколько чисел через запятую, а
также числовой интервал -- два числа раздел©нных знаком минус.
Нумерация байтов, символов и полей начинается с 1. Можно использовать
открытые интервалы, например, -7 означает 1-7 от 1 до 7, 9- означает от 9 до конца строки.
Программа cut воспринимает следующие параметры:
- -b byte-list
- -bytes=byte-list
- Вывести только байты в позициях перечисленных в byte-list. Символы <TAB> и <BS>
рассматриваются как 1 байт.
- -c character-list
- -characters=character-list
- Вывести только символы в позициях перечисленных в character-list.
Практически то же, что в параметре -b, но в будущем
интернационализация может изменить это положение (новые коды символов
занимают могут занимать несколько байтов).
- -f fiels-list
- -fields=fiels-list
- Выводить только поля указанные в fiels-list. По умолчанию разделителем
полей является символ <TAB>.
- -d delim
- -delimiter=delim
- Используется совместно с параметром -f,
поля будут разделяться первым символом строки delim. По умолчанию разделитель полей есть <TAB>.
- -n
- Не разделять многобайтные символы (пока не используется).
- -s
- -only-delimited
- Используется совместно с параметром -f, не печатать строки, которые не
содержат символ разделителя полей.
/sectionexpand/unexpand - преобразовать табуляторы в пробелы и обратно
Использование программ:
expand [option...] [file...]
unexpand [option...] [file...]
Программа expand заменяет знаки табулятора <TAB> в строках, где
они встретились, на столько пробелов, на сколько необходимо. Программа unexpand производит обратное преобразование, т.е. пытается заменить
встреченные пробелы знаками <TAB>.
Следует заметить, что такие преобразования могут оказаться весьма
не безобидными: несмотря на то, что внешний вид текста практически не
изменится, изменится его объ©м, а некоторые файлы (например,
make файлы) могут оказаться неработоспособными после expand.
Программа expand воспринимает следующие параметры.
- -tab1,tab2...
- -t tab1,tab2...
- -tabs=tab1,tab2...
- Обработать знаки табулятора <TAB> со значениями колонок табуляции tab1,tab2 (нумерация колонок начинается с 0) и т.д. Кроме того,
заменить все знаки табулятора за пределами представленного списка знаками
пробела. Если колонки табуляции указаны значениями параметров -t или
-bf tabs=, то их можно разделять как запятыми, так и
пробелами.
- -i
- -initial
- Преобразовать в пробелы только начальные табуляторы в строках, т.е.
табуляторы, которые непосредственно предшествуют символам не совпадающим с
пробелом или табулятором.
Программа unexpand по умолчанию заменяет в символы табулятора только
начальные пробелы в каждой вводной строке. Символы <BS> уменьшают сч©тчик
колонок для помещения знака <TAB>. По умолчанию, знаки табуляции
устанавливаются через каждые 8 колонок. Программа воспринимает следующие
параметры.
- -tab1,tab2...
- -t tab1,tab2...
- -tabs=tab1,tab2...
- Установить знаки табулятора <TAB> со значениями колонок табуляции tab1,tab2 (нумерация колонок начинается с 0) и т.д. Кроме того,
оставить без изменений все знаки пробелов и табуляторов
за пределами представленного списка.
Если колонки табуляции указаны значениями параметров -t или
-bf tabs=, то их можно разделять как запятыми, так и
пробелами.
- -a
- -all
- Заменить где возможно все пробелы знаками табуляции,
а не только начальные пробелы в
каждой строке.
Итак, пример. Нам надо было сравнить два каталога, чтобы установить есть
ли в них общие имена
ls -1 /lib > /tmp/Lib
ls -1 /usr/lib > /tmp/Ulib
comm /tmp/Lib /tmp/Ulib | expand --tabs=10,50 | cut -b 51-70 | uniq -c
Выполнив привед©нную выше последовательность мы увидим, что имеется лишь
одно общее имя в обоих каталогах libc5-compat.
Next: 7.20 tr - перекодировка
Up: 7. Программы преобразования и
Previous: 7.18 comm - сравнить
Andrei Chevel
Andrei.Chevel@pnpi.spb.ru