Как использовать sed для редактирования на месте с опцией -a вместо -i (без создания временного файла)

sedi(){ case $# in [01]|[3-9])echo usage: sedi sed-cmds file ;;2)sed -a ''"$1"';H;$!d;g;' $2 |sed -a '/^$/d;w '"$2"'' ;;esac;}


Эта команда представляет собой функцию с именем «sedi». Она позволяет использовать утилиту «sed» для редактирования файла на месте без создания временного файла.

Функция принимает два аргумента. Первый аргумент — это выражение для редактирования, которое передается в качестве аргумента для команды «sed». Второй аргумент — это имя файла, который необходимо отредактировать.

Команда начинается с проверки количества аргументов. Если передано 0 или 1 аргумент, выводится сообщение об использовании функции с примером ее использования. Если передано больше 2 аргументов, функция не выполняет никаких действий.

Если передано ровно 2 аргумента, выполнение функции начинается с вызова команды «sed» с опцией «-a» и переданным выражением редактирования. Результат этой команды записывается во временный буфер обмена.

Затем выполняется команда «sed» с опцией «-a» и указанием удаления пустых строк. Результат этой команды записывается обратно в исходный файл.

Возможная альтернатива для выполнения редактирования на месте без создания временного файла — использование команды «sed» с опцией «-i» или команды «ex -sc» в комбинации с выражениями «1,$» и «wq».

Дополнительная информация о синтаксисе и возможных аргументах команды «sed» может быть получена с помощью команды «man sed» или «sed —help».

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *