<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Linux Forum &mdash; программа для автом-ции поиска и замены текста в веб-страницах .htm]]></title>
	<link rel="self" href="https://linuxforum.ru/extern.php?action=feed&amp;tid=11128&amp;type=atom" />
	<updated>2011-02-19T13:45:26Z</updated>
	<generator>PunBB</generator>
	<id>https://linuxforum.ru/viewtopic.php?id=11128</id>
		<entry>
			<title type="html"><![CDATA[Re: программа для автом-ции поиска и замены текста в веб-страницах .htm]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=147056#p147056" />
			<content type="html"><![CDATA[<p>1) присвоить переменной значение от команды<br />VAR=`command`<br />или лучше<br />VAR=$(command)<br />2) если вы пишете sed скрипт внутри bash скрипта, то заключите его в одиночные кавычки, иначе этот скрипт будет разрезан на куски и преобразован bash&#039;ем. Что-бы передать внутрь скрипта переменную bash используйте двойные кавычки. Но тогда в таком скрипте нельзя писать что угодно,</p>]]></content>
			<author>
				<name><![CDATA[drBatty]]></name>
				<uri>https://linuxforum.ru/profile.php?id=86</uri>
			</author>
			<updated>2011-02-19T13:45:26Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=147056#p147056</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: программа для автом-ции поиска и замены текста в веб-страницах .htm]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=147054#p147054" />
			<content type="html"><![CDATA[<p>sed скрипт нужен. если я правильно понял, то у меня такой скрипт уже есть.<br /><a href="http://drbatty.ru/sed/ch04s14.html">http://drbatty.ru/sed/ch04s14.html</a></p>]]></content>
			<author>
				<name><![CDATA[drBatty]]></name>
				<uri>https://linuxforum.ru/profile.php?id=86</uri>
			</author>
			<updated>2011-02-19T13:39:16Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=147054#p147054</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[программа для автом-ции поиска и замены текста в веб-страницах .htm]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=147045#p147045" />
			<content type="html"><![CDATA[<p>Какая есть хорошая программа для автоматизации процесса поиска и замены текста в веб-страницах .htm?<br />Программа нужна по причине того, что *#*%#&nbsp; веб-броузер сохранил странички и каталоги на диск, но при открытии их броузером на другом ПК, он странички показывает “голые”, т.е. без картинок, хранящихся в связанной папке. Приходится открывать каждую страницу в BlueFish и править название каталога (абракадабракаталог_files) со всеми картинками на правильное, а не то, которое указал *#*%#&nbsp; веб-броузер.<br />Я так понимаю, что придется писать скрипт для Bash. <br />&nbsp; &nbsp;Как автоматизировать&nbsp; процесса поиска-замены текста в веб-страницах .htm, а именно написания названия файлов картинок и других элементов, так как они сохранены на диске в связанном каталоге, т.е. в таком же чередовании прописных и строчных литер, а то в Linux это критично?<br />&nbsp; &nbsp;Я немного попробовал что-то написать, но уперся в проблему присвоения переменной значения из файла.<br />Например, нужно присвоить переменной «i» результат выполнения команды<br />find -type f -name &quot;*.htm*&quot; -print | grep -c .htm или прочесть его из файла out<br />find -type f -name &quot;*.htm*&quot; -print | grep -c .htm &gt; out ,<br />которая подсчитывает кол-во веб-страниц в указанном каталоге.<br />Далее начинается цикл обработки каждой страницы из этого каталога, т.е. как-то необходимо организовать поиск и замену в каждой странице, которая упоминается в отдельной строке файла out &#039;абракадабракаталог_files&#039;&nbsp; на &#039;каталог_files&#039;.<br />Необходимо искать каждое упоминание, например “%12%3E%3F%40%3Eс_files” в веб-странице «Вопрос.htm» и менять левую часть (название каталога) на «Вопрос_files».<br />Нужно построчно читать название каждой веб-страницы из файла out, присвоить переменной, далее отрезать хвостик .htm, заменить его на “название веб-страницы_files” открыть эту&nbsp; веб-страницу произвести поиск-замену и сохранить изменения.<br />Кто-то что-то может посоветовать? Какие команды (инструменты) использовать?</p><p>Количество *.htm файлов&nbsp; в папке /path подсчитывают команды<br />find /path -type f -name &quot;*.htm*&quot; -print | grep -c .htm<br />find /path -type f -name *.htm | wc -l<br />Нужно переменной, например list, присвоить результат выполнения хотя бы одной из них.<br />КАК ЭТО СДЕЛАТЬ?<br />Объясняю&nbsp; детально.<br />Например, у Вас в каталоге /path&nbsp; лежит 10 файлов *.htm и связанных с ними каталогов с картинками и т.п.<br />Вы хотите<br />получить список всех необходимых файлов благодаря <br />&nbsp; &nbsp; ls /path *.htm &gt; out-spisok<br />подсчитать кол-во файлов *.htm<br />&nbsp; &nbsp; find /path -type f -name &quot;*.htm*&quot; -print | grep -c .htm&nbsp; &nbsp;ИЛИ<br />&nbsp; &nbsp; find /path -type f -name *.htm | wc -l<br />присвоить переменной. например&nbsp; list&nbsp; ПОЛУЧЕННОЕ от одной из вышеуказанных команд значение (10) <br />&nbsp; &nbsp; КАК??????????<br />организовать цикл обработки каждой *.htm страницы (файла) из этого каталога<br />&nbsp; &nbsp; var=&quot;1&quot;<br />&nbsp; &nbsp; # пока var меньше или равно переменной&nbsp; list (кол-ва веб страниц)<br />&nbsp; &nbsp; while [ $var -le&nbsp; $list ]<br />&nbsp; &nbsp; do<br />&nbsp; &nbsp; 5)&nbsp; &nbsp;…......<br />&nbsp; &nbsp; 9) …......<br />&nbsp; &nbsp; var=$[$var+1]<br />&nbsp; &nbsp; done</p><p>&nbsp; &nbsp; &nbsp;там, где …...... д.б.<br />присвоить переменной, например webfile 1-е (потом 2-е и т.д.) значение из списка&nbsp; out-spisok<br />&nbsp; &nbsp; sed -n $var,+0p out-spisok<br />&nbsp; &nbsp; КАК??????????<br />поиск 1-го значения &#039;_files&#039; в webfile<br />определение начала и конца &#039;абракадабракаталог_files&#039;&nbsp; без &#039;_files&#039; <br />&nbsp; &nbsp; В *.htm файле название каталога находится между =” и _files<br />&nbsp; &nbsp; КАК??????????<br />присвоение переменной poisk &#039;абракадабракаталог&#039; <br />&nbsp; &nbsp; poisk = &#039;абракадабракаталог&#039; <br />замена во всем файле webfile &#039;абракадабракаталог&#039; на &#039;правильныйкаталог_files&#039;, где &#039;правильныйкаталог&#039; (foldernew) совпадает с названием страницы и каталога на диске в папке /path и равно <br />&nbsp; &nbsp; foldernew = $webfile (без &#039;.htm&#039;) +&#039;_files&#039;<br />&nbsp; &nbsp; sed s/$poisk/$foldernew/g $webfile &gt; $webfile-out<br />конец цикла<br />Проблемы<br />Как в bash скрипте сделать, ЕСЛИ ЭТО ВОЗМОЖНО<br />присвоение переменной результата выполнения команды или последовательности команд (пайпа)<br />определение начала и конца искомого значения в тексте (&#039;абракадабракаталог_files&#039;) и его «вырезание» и присвоение переменной</p>]]></content>
			<author>
				<name><![CDATA[vl72]]></name>
				<uri>https://linuxforum.ru/profile.php?id=15547</uri>
			</author>
			<updated>2011-02-19T13:14:05Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=147045#p147045</id>
		</entry>
</feed>
