Книга: Искусство программирования на языке сценариев командной оболочки

Пример 12-30. Декодирование файлов

Пример 12-30. Декодирование файлов

#!/bin/bash

lines=35 # 35 строк для заголовка (более чем достаточно).

for File in * # Обход всех файлов в текущем каталоге...

do

search1=`head -$lines $File | grep begin | wc -w`

search2=`tail -$lines $File | grep end | wc -w`

# Закодированные файлы начинаются со слова "begin",

#+ и заканчиваются словом "end".

if [ "$search1" -gt 0 ]

then

if [ "$search2" -gt 0 ]

then

echo "декодируется файл - $File -"

uudecode $File

fi

fi

done

# Обратите внимание: если передать сценарию самого себя, для декодирования,

#+ то это введет его в заблуждение

#+ поскольку в тексте сценария встречаются слова "begin" и "end".

exit 0


При декодировании и выводе длинных текстовых сообщений из новостных групп Usenet, очень нелишним будет передать текст, по конвейеру, команде fold -s.

mimencode, mmencode

Утилиты mimencode и mmencode предназначены для обработки закодированных мультимедийных вложений в электронные письма. Хотя почтовые программы (такие как pine или kmail) имеют возможность автоматической обработки таких вложений, тем не менее эти утилиты позволяют обрабатывать вложения вручную, из командной строки или в пакетном режиме, из сценария на языке командной оболочки.

crypt

Одно время, это была стандартная, для UNIX, утилита шифрования файлов.[ 31 ] Политически мотивированные, правительственные постановления ряда стран, напрямую запрещают экспорт программного обеспечения для шифрования, что, в результате, привело практически к полному исчезновению crypt из большинства UNIX-систем (в том числе и Linux). К счастью, программистами было разработано множество вполне приличных альтернатив, и среди них cruft (см. Пример A-5).

Прочее

mktemp

Создает временный файл с "уникальным" именем.

PREFIX=filename

tempfile=`mktemp $PREFIX.XXXXXX`

# ^^^^^^ Необходимо по меньшей мере 6 заполнителей

echo "имя временного файла = $tempfile"

# имя временного файла = filename.QA2ZpY

# или нечто подобное...

make

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

Команда make использует в своей работе Makefile, который содержит перечень зависимостей и операций, которые необходимо выполнить для удовлетворения этих зависимостей.

install

Своего рода -- утилита копирования файлов, похожа на cp, но дополнительно позволяет изменять права доступа и атрибуты копируемых файлов. Напрямую эта команда практически не используется, чаще всего она встречается в Makefile (в разделе make install :). Она может использоваться в сценариях установки ПО.

dos2unix

Автор утилиты -- Benjamin Lin со-товарищи. Предназначена для преобразования текстовых файлов из формата DOS (в котором строки завершаются комбинацией символов CR-LF) в формат UNIX (в котором строки завершаются одним символом LF) и обратно.

ptx

Команда ptx [targetfile] выводит a упорядоченный предметный указатель для targetfile, который можно обработать, по мере необходимости, какой либо утилитой форматирования, в конвейере.

more, less

Команды постраничного просмотра текстовых файлов или потоков на stdout. Могут использоваться в сценариях в качестве фильтров.

Оглавление книги


Генерация: 1.510. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз