LINUX.ORG.RU

Сообщения meranil

 

Sed удаление строк только из части файла

Добрый день, подскажите пожалуйста, имеется файл alias с таким содержымым:

group:user1,user2,user3,user4,user5.....

stan:user3,user7,user9......

#Begin users

Petrov user1

Ivanov user2

Galov user3

..........................

Необходимо удалить строки содержащие user1,user3...... в блоке который идет после #Begin users, допустим если удаляется user1, то он удаляется из нижнего блока, удаляется вся строка

Petrov user1

а в верхнем блоке удалялась только запись user1 а не вся строка. Пытался написать скрипт, но он удаляет все строки с записью user1, а пропустить часть файла до записи #Begin users не получается, подскажите как правильно ет зделать. Мною написаный скрипт:

#!/bin/bash

if [ $# -ne 2 ]

then

echo «Для работы скрипта требуется 2 аргумента: 1)файл из которого брать пользователей для удаления 2)файл в котором данные пользователи будут удалятся

else

echo „Количество аргументов верно Начинается удаление ползователей по списку $1“

cat $1 | while read line

do

if [ -n »$line" ]

then

sed -i «/$line$/d» «$2»

fi

fi

done

exit 0;

что нужно добавить, что б пропустить первый блок файла, и вносить изменения после записи #Begin users Подскажите пожалуйста, не знаю в каком направлении рыть. У меня стала проблема, как обрабатывать только часть файла а не весь файл.

meranil
()

RSS подписка на новые темы