Abstractions all the way down.
Regexp för radbrytningar efter taggar i stökiga html-filer
Visa signatur
Visa signatur
Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.
Hej.
Jag har ett gäng stökiga html-filer som jag vill städa upp med hjälp av ett bashscript.
Som de ser ut nu så verkar alla taggar ha hamnat på samma rad. Jag vill ha en radbrytning efter varje tagg utom de som ligger mellan body-taggarna.
Det borde gå att knäcka med hjälp av sed och regexp. Jag och regexp är dock inte bästa polare så jag lyckas inte få till det. Någon här som är grym på regexp och kan hjälpa mig på traven?
Jag har koden klar för scriptet i övrigt. Det är bara ett fungerande regexp för att få till radbrytning efter tagg jag behöver hjälp med.
Man bör inte parsa (x|x?ht)ml med regex, försök att lösa detta med en riktig xmlparser eller tidy istället.
Skickades från m.sweclockers.com
Abstractions all the way down.
Jag håller starkt med inlägg #2, men i detta fall så är det inte mycket parsning som ska göras.
Enklast är att köra typ
sed 's#\(</[^>]\+>\)#&\n#g'
på hela filen och sedan copy+pastea de nu radbrytna delarna i headern, om du inte vill röra <body>-segmentet. Om det inte handlar om en herrans massa filer, vill säga, men antar att det är räkneligt många.
Regexpet matchar en grupp bestående av '</' + [vilket tecken som helst förutom '>'] ⋅ [mer än 0] + '>' och ersätter den med det som träffade samt en avslutande radbrytning, och detta sker globalt (dvs inte bara en gång per rad).
Om du inte vill ha radbrytning efter enbart efter sluttaggar utan även starttaggar så är det bara att skippa '/'-tecknet i mitt matchningsmönster.
Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.
Copyright © 1999–2023 Geeks AB. Allt innehåll tillhör Geeks AB.
Citering är tillåten om källan anges.