Пример 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. Могут использоваться в сценариях в качестве фильтров.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

5.1.3. Учебный пример: PNG — формат графических файлов

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

5.1.3. Учебный пример: PNG — формат графических файлов PNG (Portable Network Graphics — переносимая сетевая графика) представляет собой формат для хранения растровых изображений. Он подобен GIF, и, в отличие от JPEG, в данном формате используется алгоритм сжатия без потерь. Формат PNG


5.1.1. Учебный пример: формат файлов паролей в Unix

Из книги Windows Script Host для Windows 2000/XP автора Попов Андрей Владимирович

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


5.1.2. Учебный пример: формат файлов .newsrc

Из книги Системное программирование в среде Windows автора Харт Джонсон М

5.1.2. Учебный пример: формат файлов .newsrc Новости Usenet представляют собой распределенную по всему миру систему электронных досок объявлений, которая предвосхитила современные Р2Р-сети за два десятилетия до их появления. В Usenet используется формат сообщений, очень сходный с


5.1.3. Учебный пример: PNG — формат графических файлов

Из книги Сетевые средства Linux автора Смит Родерик В.

5.1.3. Учебный пример: PNG — формат графических файлов PNG (Portable Network Graphics — переносимая сетевая графика) представляет собой формат для хранения растровых изображений. Он подобен GIF, и, в отличие от JPEG, в данном формате используется алгоритм сжатия без потерь. Формат PNG


Пример: СОМ-объект для архивирования файлов

Из книги PGP: Кодирование и шифрование информации с открытым ключом. автора Левин Максим

Пример: СОМ-объект для архивирования файлов Представим себе следующую ситуацию. Имеется несколько каталогов на жестком диске, в которых хранятся рабочие файлы разных пользователей. Необходимо каждый день с помощью программы-архиватора arj.exe делать архивы этих файлов в


Пример создания PDF-файлов

Из книги автора

Пример создания PDF-файлов В качестве примера использования очереди печати можно привести задачу преобразования входных PostScript-данных в PDF-файлы. Для ее решения надо создать очередь подобную той, которая используется для обработки данных, сгенерированных с помощью


Декодирование.

Из книги автора

Декодирование. Для декодирования файла и/или проверки его подписи используется команда:pgp входной_файл [-o выходной_файл]По умолчанию предполагается, что входной файл имеет расширение .pgp.   Выходной файл является необязательным параметром и будет содержать


Пример 2-1. cleanup: Сценарий очистки лог-файлов в /var/log

Из книги автора

Пример 2-1. cleanup: Сценарий очистки лог-файлов в /var/log # cleanup# Для работы сценария требуются права root.cd /var/logcat /dev/null > messagescat /dev/null > wtmpecho "Лог-файлы очищены."Здесь нет ничего необычного, это простая последовательность команд, которая может быть набрана в командной строке с


Пример 9-17. Изменение расширений в именах файлов:

Из книги автора

Пример 9-17. Изменение расширений в именах файлов: #!/bin/bash# rfe# ---# Изменение расширений в именах файлов.## rfe old_extension new_extension## Пример:# Изменить все расширения *.gif в именах файлов на *.jpg, в текущем каталоге# rfe gif jpgARGS=2E_BADARGS=65if [ $# -ne "$ARGS" ]then echo "Порядок


Пример 10-4. Обработка списка файлов в цикле for

Из книги автора

Пример 10-4. Обработка списка файлов в цикле for #!/bin/bash# list-glob.sh: Создание список файлов в цикле for с использованием# операции подстановки имен файлов ("globbing").echofor file in *do ls -l "$file" # Список всех файлов в $PWD (текущем каталоге). # Напоминаю, что символу "*" соответствует любое имя


Пример 12-20. Пример форматирования списка файлов в каталоге

Из книги автора

Пример 12-20. Пример форматирования списка файлов в каталоге #!/bin/bash# За основу сценария взят пример "man column".(printf "PERMISSIONS LINKS OWNER GROUP SIZE DATE TIME PROG-NAME " ; ls -l | sed 1d) | column -t# Команда "sed 1d" удаляет первую строку, выводимую командой ls,#+ (для локали "С" это строка: "total N",#+ где "N" -- общее


Пример 12-43. Генератор имен файлов

Из книги автора

Пример 12-43. Генератор имен файлов #!/bin/bash# tempfile-name.sh: Генератор имен временных файловBASE_STR=`mcookie` # 32-символьный (128 бит) magic cookie.POS=11 # Произвольная позиция в строке magic cookie.LEN=5 # $LEN последовательных символов.prefix=temp # В конце концов это временный ("temp")


Пример 28-1. Удаление cookie-файлов

Из книги автора

Пример 28-1. Удаление cookie-файлов if [ -f ~/.netscape/cookies ] # Удалить, если имеются.then rm -f ~/.netscape/cookiesfiln -s /dev/null ~/.netscape/cookies# Теперь, все cookie-файлы, вместо того, чтобы сохраняться на диске, будут "вылетать в трубу"./dev/zeroПодобно псевдоустройству /dev/null, /dev/zero так же является