Операционная система UNIX. Руководство пользователя

       

Использование ed в shell программе


"Here document" предлагает способ использования ed в shell программе. Предположим вы хотите создать shell программу, которая будет вызывать редактор ed, проводить глобальные изменения в файле, записывать изменения в файл и затем завершать работу с ed. На следующем экране приведено содержание программы ch.text, которая выполняет эти задачи:

$ cat ch.text<CR>

echo Type in the filename read file1 echo Type in the exact text to be changed. read old_text echo Type in the exact new text to replace the above. read new_text ed - $file1 <<! g/$old_text/s//$new_text/g w q ! $

Обратите внимание на знак - (минус) в команде ed. Эта опция предотвращает распечатку счетчика символов на экране. Обратите также внимание на формат команды ed для глобальной замены:

g/$old_text/s//$new_text/g

Программа использует 3 переменные: file1, old_text, new_text. При запуске эта программа использует команду read для получения значений этих переменных. Эти переменные содержат следующую информацию:
file - имя файла, который будет редактироваться;
old_text - текст, который будет изменен;
new_text - новый текст.

Переменные вводятся в программу, here document перенаправляет команду глобальной замены, команду записи и команду завершения команде ed. Запустите программу ch.text. Получите следующий экран:

$ ch.text<CR>

Type in the filename memo<CR>

Type in the exact text to be changed. Dear John:<CR>

Type in the exact new text to replace the above. To what it may concern:<CR>

$ cat memo<CR>

To what it may concern:<CR>

$



Содержание раздела