Ho una struttura di un progetto nel mio repository git e vorrei eseguire un comando shell in git bash per sostituire tutto il >
con >\n
(LF).
Ho provato il seguente comando:
find . -name '*.xml' -exec sh -c 'sed 's/>/>\n/g "$0"' '{}' ';'
significa sostituire i set sopra (>
con >\n
) in tutti i file xml trovati nel mio progetto.
Non so cosa sto facendo di sbagliato poiché atterro nell'editor con il cursore ">"...
(rendendolo semplicemente carino in un editor, ad esempio Note++ è facile con i plug-in per XMLTools ma voglio che i miei file vengano modificati in avere in loro l'LF dopo ogni tag XML)
Quando scrivo il comando solo per un file, funziona bene:
$ sed 's/>/>\n/g' MyFile.xml
Risposta accettata:
È una cattiva idea usare sed
per questo, quello che sembra fare è formattare il file XML.
È un compito semplice per qualsiasi parser XML, ad esempio :
xmllint --format file.xml
Questa utility è spesso installata di default su GNU Linux, o con il pacchetto libxml2
o
xmlstarlet format file.xml