Отправляет email-рассылки с помощью сервиса Sendsay

Как удалить строки

Здравствуйте!

Образовалась проблема...

Имеется большой текстовый файл. В нем необходимо удалить каждые
27 строк которые идут за строкой содержащей шаблон -*-----.
Если этот шаблон содержится в строках подлежащих удалению,
он не должен учитываться.

Можно ли как-нибудь зделать это с помощью Vim, или другими средствами.

ZVital

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 17710; Возраст листа: 623; Участников: 1355
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/347359

Ответить   Fri, 08 Apr 2005 08:59:23 +0400 (#347359)

 

Ответы:

Доброе время суток!
Fri, 08 Apr 2005 08:59:23 +0400 ZVital писал(а):

Если бы люди немного поправили строчку в комментариях, то это заработало бы это:

#!/bin/bash

INPUT=your_big_file
OUTPUT=`mktemp /tmp/tmp.XXXXX`

cat $INPUT | while read line
do
TMP=`echo "$line" | grep -e "--*----"`
if [ "T$TMP" != T ]
then
COUNTER=27
while [ "$COUNTER" -gt 0 ]
do
# ?пропустить строку из основного цикла?

let "COUNTER = $COUNTER - 1"
done
else
echo $line >> $OUTPUT
fi
done
mv -f $OUTPUT $INPUT

Ответить   Терновых Илья Sat, 9 Apr 2005 14:39:40 +0400 (#347903)

 

В сообщении от 1112939963 секунд после начала Эпохи Unix Вы написали:

:%g/-*-----/d28

Все-таки лучше чем писать скрипт из 21 строки :)

Ответить   Konstantin Korikov Sat, 9 Apr 2005 21:45:23 +0300 (#348098)