URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 57775
[ Назад ]

Исходное сообщение
"Текстовые редакторы."

Отправлено qazovchik , 29-Июн-05 16:38 
Вот такая задача
имеется к примеру 100 файлов формата .html
нужно найти и удалить в этих файлах определенные одинаковые строки.
К прмеру

<html>
<HEAD>
<TITLE>bla-bla-bla</TITLE>
Различный текст
123
321123
</html>
файл 321.html имеет вид
<html>
<HEAD>
<TITLE>bla-bla-bla</TITLE>
Различный преразличны текст
55555666
</html>
так вот из этих файлов надо удалить строки
<html>
<HEAD>
<TITLE>bla-bla-bla</TITLE>
и
</html>
С помощью какого редактора это можно сделать и как ? Подскажите пожалуйста если кто сталкивался с этим.
Вроде как это возмлжно сделать при помощи sed


Содержание

Сообщения в этом обсуждении
"Текстовые редакторы."
Отправлено wawont , 29-Июн-05 16:49 
>Вроде как это возмлжно сделать при помощи sed

Вроде да... так:

#!/bin/sh
# удаляет из всех файлов *html в директории строку
# "<TITLE>bla-bla-bla</TITLE>"

for fhtml in *html ;
do
   sed 's#<TITLE>bla-bla-bla</TITLE>##g' $fhtml > tmp9999
   mv tmp9999 $fhtml
done


"Текстовые редакторы."
Отправлено qazovchik , 29-Июн-05 16:55 
А возможно ли удалять шаблон типа
<html>
<HEAD>
<TITLE>bla-bla-bla</TITLE>
целиком ?
а не построчно ..

"Текстовые редакторы."
Отправлено wawont , 29-Июн-05 17:23 
>А возможно ли удалять шаблон типа
><html>
><HEAD>
><TITLE>bla-bla-bla</TITLE>
>целиком ?
>а не построчно ..

ну допиши в скрипт еще пару строк с
<html>
<HEAD>
и используй перенаправление  
sed '...' $fhtml |
sed '...' |
...
sed '...' > tmp9999
mv ...


"Текстовые редакторы."
Отправлено qazovchik , 29-Июн-05 17:42 
=) примерно понятно ...
а если упростить задачу ...
Оказалость что во всех этих файлах надо удалить первые 96 строчек ..

вот как быть с этим ...?
#sed '1,96d' *.htm
что надо сделать чтобы эта комманда заработала =) ?