GNU/Linux >> Znalost Linux >  >> Linux

Xml bez Lf Chcete to udělat hezký pomocí Sed Command v Shell?

Mám strukturu projektu ve svém úložišti git a chtěl bych spustit příkaz shell v git bash, který nahradí všechny > pomocí >\n (LF).
Zkoušel jsem následující příkaz:

find . -name '*.xml' -exec sh -c 'sed 's/>/>\n/g "$0"' '{}' ';'

což znamená nahradit výše uvedené sady (> pomocí >\n ) ve všech xml souborech nalezených v mém projektu.

Nevím, co dělám špatně, když jsem v editoru přistál s kurzorem „>“…
(jen to zkrášlím v editoru – např. Note++ je snadné s pluginy pro XMLTools, ale chci, aby se moje soubory změnily na mít v nich LF za každou značkou XML)

Když napíšu příkaz pouze pro soubor – funguje to dobře:

$ sed 's/>/>\n/g' MyFile.xml

Přijatá odpověď:

Je špatný nápad používat sed pro tento účel zřejmě formátujete soubor XML.

Je to jednoduchý úkol pro jakýkoli analyzátor XML, např.:

xmllint --format file.xml

Tento nástroj se často instaluje standardně na GNU Linux nebo s balíčkem libxml2

nebo

xmlstarlet format file.xml

Linux
  1. Jak převést PPK na soubor PEM pomocí příkazu

  2. Jak odstranit prvních N řádků souboru Ascii pomocí příkazů Shell?

  3. Jak odstranit soubor bez použití rm?

  1. Použití více vzorů najednou pomocí příkazu Sed

  2. Použití kláves Vi k úpravě příkazů Shell v Unixu?

  3. Uložit soubor po použití příkazu Sed?

  1. Duplicitní soubor X-krát v Command Shell?

  2. 10 Sed (Editor streamu) Příklady příkazů

  3. Příklady příkazů sed v Linuxu