Код: Выделить всё
<shop id="138">
<куча параметров>значение</куча параметров>
</shop>
<shop id="139">
<куча параметров>значение</куча параметров>
</shop>
<shop id="145">
<куча параметров>значение</куча параметров>
</shop>Разбить файл на кучу маленьких по принципу:
Первый файл:
Код: Выделить всё
<shop id="138">
<куча параметров>значение</куча параметров>
</shop>Код: Выделить всё
<shop id="139">
<куча параметров>значение</куча параметров>
</shop>Я сделал это следующим образом:
Код: Выделить всё
#!/bin/bash
cat -n s.xml | grep -E "<shop|shop>" | sed -r "s/<y[^>]*>//;s/[\t\n]//g;s=<s=,<=;N;s/\n//g;s/^/sed -n '/;s/\t/p;' s.xml/;s/(id=)([^>]*[0-9])(.*xml)/\1\2\3 | LANG=ru_RU.UTF-8 enconv > \2.xml/;s/<[^>]*>//g;s/\"//;s/,([0-9]*)p;/,\1p;\1q;/" > tmp.sh
chmod +x tmp.sh
./tmp.sh
rm tmp.shКод: Выделить всё
sed -n '3170118,3182227p;3182227q;' s.xml | LANG=ru_RU.UTF-8 enconv > 14137.xmlПо моему весьма нерационально так прогонять sed по файлу много раз. Время работы скрипта ~ 30-40 минут.
Но ничего умнее я не придумал.