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


order discount viagra usa

Программирование на языке сценариев командной оболочки - стр. 276


Кроме того, этот прием позволяет комбинировать вызовы sed и awk, например в конвейере, позволяя передавать данные с выхода одной утилиты на вход другой.

Пример 33-1. сценарий-обертка

#!/bin/bash

# Этот простой сценарий удаляет пустые строки из текстового файла. # Проверка входных аргументов не производится. # # Однако вы можете дополнить сценарий такой проверкой, # добавив нечто подобное: # if [ -z "$1" ] # then # echo "Порядок использования: `basename $0` текстовый_файл" # exit 65 # fi

# Для выполнения этих же действий, # из командной строки можно набрать # sed -e '/^$/d' filename

sed -e /^$/d "$1" # '-e' -- означает команду "editing" (правка), за которой следуют необязательные параметры. # '^' -- с начала строки, '$' -- до ее конца. # Что соответствует строкам, которые не содержат символов между началом и концом строки, #+ т.е. -- пустым строкам. # 'd' -- команда "delete" (удалить).

# Использование кавычек дает возможность #+ обрабатывать файлы, чьи имена содержат пробелы.

exit 0

Пример 33-2. Более сложный пример сценария-обертки

#!/bin/bash

# "subst", Сценарий замены по шаблону # т.е., "subst Smith Jones letter.txt".

ARGS=3 E_BADARGS=65 # Неверное число аргументов.

if [ $# -ne "$ARGS" ] # Проверка числа аргументов. then echo "Проядок использования: `basename $0` old-pattern new-pattern filename" exit $E_BADARGS fi

old_pattern=$1 new_pattern=$2

if [ -f "$3" ] then file_name=$3 else echo "Файл \"$3\" не найден." exit $E_BADARGS fi

# Здесь, собственно, выполняется сама работа по поиску и замене. sed -e "s/$old_pattern/$new_pattern/g" $file_name # 's' -- команда "substitute" (замены), # а /pattern/ -- задает шаблон искомого текста. # "g" -- флаг "global" (всеобщий), означает "выполнить подстановку для *каждого* # обнаруженного $old_pattern во всех строках, а не только в первой строке.

exit 0 # При успешном завершении сценария -- вернуть 0.




Содержание  Назад  Вперед