Grazie della risposta, ho provato a usare alcuni dei programmi in giro, xmlint per esempio, ma tutti hanno problemi con la lettura del file, il fatto è che ha una struttura proprietaria (mi viene da pensare quello) e non si riesce a gestire. Per questo motivo lo volevo gestire come solo testo.
Al momento sto provando la stringa:
sed -n -e "/tag-SI/,/tag-SI/p"
ma non capisco perchè non si ferma al ultimo tag-SI, in prattica funziona ma quando ha finito di leggere l'ultimo tag poi continua a leggere il resto del file, ottenendo una qualcosa di simile a questo:
<tag-SI>
<nome>Mario</nome>
<cognome>Rossi</cognome>
<ID>100474</ID>
</tag-SI>
<tag-SI>
<nome>Bruno</nome>
<cognome>Bruni</cognome>
<ID>231223</ID>
</tag-SI>
</tag2>
</tag1>
ecc...