Пример 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. Могут использоваться в сценариях в качестве фильтров.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Пример: СОМ-объект для архивирования файлов
Пример: СОМ-объект для архивирования файлов Представим себе следующую ситуацию. Имеется несколько каталогов на жестком диске, в которых хранятся рабочие файлы разных пользователей. Необходимо каждый день с помощью программы-архиватора arj.exe делать архивы этих файлов в
Пример создания PDF-файлов
Пример создания PDF-файлов В качестве примера использования очереди печати можно привести задачу преобразования входных PostScript-данных в PDF-файлы. Для ее решения надо создать очередь подобную той, которая используется для обработки данных, сгенерированных с помощью
5.1.3. Учебный пример: PNG — формат графических файлов
5.1.3. Учебный пример: PNG — формат графических файлов PNG (Portable Network Graphics — переносимая сетевая графика) представляет собой формат для хранения растровых изображений. Он подобен GIF, и, в отличие от JPEG, в данном формате используется алгоритм сжатия без потерь. Формат PNG
5.1.1. Учебный пример: формат файлов паролей в Unix
5.1.1. Учебный пример: формат файлов паролей в Unix Во многих операционных системах данные пользователей, необходимые для регистрации и запуска пользовательского сеанса, представляют собой трудную для понимания двоичную базу данных. В противоположность этому, в
5.1.2. Учебный пример: формат файлов .newsrc
5.1.2. Учебный пример: формат файлов .newsrc Новости Usenet представляют собой распределенную по всему миру систему электронных досок объявлений, которая предвосхитила современные Р2Р-сети за два десятилетия до их появления. В Usenet используется формат сообщений, очень сходный с
5.1.3. Учебный пример: PNG — формат графических файлов
5.1.3. Учебный пример: PNG — формат графических файлов PNG (Portable Network Graphics — переносимая сетевая графика) представляет собой формат для хранения растровых изображений. Он подобен GIF, и, в отличие от JPEG, в данном формате используется алгоритм сжатия без потерь. Формат PNG
Пример 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 так же является
Декодирование.
Декодирование. Для декодирования файла и/или проверки его подписи используется команда:pgp входной_файл [-o выходной_файл]По умолчанию предполагается, что входной файл имеет расширение .pgp. Выходной файл является необязательным параметром и будет содержать