Portál AbcLinuxu, 12. května 2025 02:46
<table> <tr class="head"> <td></td> </tr> <tr> <td></td> </td> </table >a potreboval bych prvni radek ohranicit do tagu aby to ve vysledku vypadalo nejak takhle
<table> <thead><tr> <td></td> </tr> <tr></thead> <td></td> </td> </table>pred ten prvni tag to zvladam umistit, ale nemuzu prijit na to jak to dostat za ten ukoncujici TR, protoze velikost tabulky neni vsude stejne. Byl by nekdo tak ochotny a poradil mi treba kouskem kodu. Dik
>cat prog
/<table>/ {tab=1}
tab==1 && ($0 ~ /<tr/) {tab=2;print "<thead>",$0;next}
tab==2 && ($0 ~ /<\/tr>/) {tab=0;print $0,"<\/thead>";next}
{print $0}
>awk -f prog subor.html
print $2
, ale tohle zdá se na ukázkovém kódu funguje:
awk 'BEGIN {X=0;} { if ($0 == "<tr class=\"head\">") {print "<thead><tr>"; X=1;} else if ($0 == "</tr>" && X == 1) {print "</tr></thead>"; X=0;} else print $0; }' in.html
sed -f file.sed file.html
file.sed
:l N s/<table\(.*\)\(<tr.*<\/tr>\)/<table\1<thead>\2<\/thead>/ T lA.
sed -e sed -e ":l;N;s/<table\(.*\)\(<tr.*<\/tr>\)/<table\1<thead>\2<\/thead>/;T l" file.html
sed -e ":l;N;s/<table\(.*\)\(<tr.*<\/tr>\)/<table\1<thead>\2<\/thead>/;T l" file.html
sed -e ":l;N;s/<table\(.*\)<tr[^>]*>\(.*<\/tr>\)/<table\1<thead><tr>\2<\/thead>/;T l" test.htmlale to už je vcelku jasné.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.