Da das mit ed zu bearbeitende Dokument vom BASH-Script selbst erstellt wird, konnten die im Bereich von <ul class="menu"> bis </ul><!--menu--> stehenden <li>-Zeilen für ed mit <!--menu-item--> gekennzeichnet werden. ed muss nun nicht mehr in einem Bereich suchen, in dem er eventuell nichts zum Ändern findet, sondern sucht alle markierten Zeilen und kann dann auch etwas ändern.
Aus
wirded -v -s ${datei} <<EOF
/<ul class="menu">/,/<\/ul><!--menu-->/s/<a href=".\//<a href=".\/..\//g
wq
EOF
... und alles ist gut.ed -v -s ${datei} <<EOF
g/<!--menu-item--><li>/s/<a href=".\//<a href=".\/..\//g
wq
EOF