On Fri, November 8, 2013 21:42, Heinz W. Pahlke wrote:
Hallo,
ich muss häufig fehlerhafte Epub-Dateien korrigieren, was meistens eine elende Tipparbeit bedeutet.
In der Datei befinden sich Einträge wie:
---------------------------8<---------------------------
<navPoint id="navPoint-38" playOrder="38"> <navLabel> <text>ABC</text> </navLabel> <content src="Text/section-0039.html" /> </navPoint> <navPoint id="navPoint-38" playOrder="38"> <navLabel> <text>GHIJ</text> </navLabel> <content src="Text/section-0040.html" /> </navPoint> <navPoint id="navPoint-40" playOrder="40"> <navLabel> <text>KLM</text> </navLabel> <content src="Text/section-0041.html" /> </navPoint> <navPoint id="navPoint-43" playOrder="43"> <navLabel> <text>XYZ</text> </navLabel> <content src="Text/section-0042.html" /> </navPoint>
--------------------------->8--------------------------
Entscheidend sind navPoint und playOrders, die fortlaufend numeriert sein müssen. Es dürfen also keine Zahlen doppelt vorkommen und keine fehlen, die zusammengehörenden navPoints und playOrders allerdings müssen identisch sein.
Bei nur wenigen Einträgen korrigiere ich das einfach von Hand, aber bei 200 und mehr Einträgen macht das einfach keinen Spaß mehr.
Am besten wäre eine Lösung im vim, aber sed und Co. wären ebenfalls okay.
Hier noch die obligatorische Vim Lösung:
1) Startwert festlegen:
:let g:MyNav=1
2) Suchen und ersetzen:
g/^