Jeśli koniecznie w bashu to regexp'y
Ja bym tego prawie na 100% w bashu nie robił- nie widzę powodu aby się męczyć gdy można to szybciej lepiej i ładniej napisać w prawie każdym języku ogólnego przeznaczenia.
Dla popularnych języków obiektowych jest ku takim(i innym) zabawom z plikami html/xml kupa bardzo przyjemnych i wygodnych bibliotek narzędziowych- np parsery drzewa DOM- z taką "armatą" w zanadrzu "zestrzelenie" śmiesznego kolorku(czy czegokolwiek innego dotyczącego struktury dokumentu gdy wzrośnie apetyt) staje się dziecinnie proste. Korzystałem/widziałem jak ktoś znajomy korzystał z takich bajerów(ach... te configi w xmlu) na pythonie, perlu, C++, php, lua, lisp(bardzo ciekawa implementacja) i javie, więc tam na pewno to działa.