GNU/Linux >> Linux Esercitazione >  >> Linux

Un XML senza Lf Vuoi renderlo carino usando il comando Sed in Shell?

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

Linux
  1. Utilizzo di più modelli contemporaneamente con il comando Sed

  2. Usare i tasti Vi per modificare i comandi della shell in Unix?

  3. Salvare il file dopo aver usato il comando Sed?

  4. Come rimuovere un file senza usare rm?

  5. Shell:è possibile ritardare un comando senza usare `sleep`?

Come eseguire il comando Sudo senza password

Utilizzo di Cat Command in Linux con esempi

Rendi bello il tuo guscio di pesce usando Oh My Fish

Come reindirizzare l'output del comando della shell

Come rimuovere le righe da un file usando il comando Sed

Linux make Command con esempi