Ich habe keine Bash-Erfahrung, möchte nur wissen, wie ich anfangen soll.
Ich muss ein Bash-Skript schreiben, das ein XHTML-Dokument korrekt formatiert. Zum Beispiel schaltet dies:
%Vor%hinein:
%Vor%Jetzt glaube ich, ich muss etwas tun wie:
%Vor%Bitte helfen Sie mir, es zu verstehen. Das ist alles, woran ich denken kann und ich würde wirklich gerne wissen, wie ich es lösen kann.
Verwenden Sie html-tidy
. Es wäre eine gute Idee, dies zu Ihrem .bashrc
hinzuzufügen, wenn Sie tidy
Der obige Befehl erstellt eine alias
für ordentliche Datei, die besagt, dass die Datei als XML eingerückt wird (gewährleistet, dass alle Tags schließende Tags haben), mit einem einzelnen Leerzeichen eingerückt wird und die Datei an Ort und Stelle geändert wird.
Angesichts der Einschränkungen, dass das Problem mit einem Bash-Skript gelöst werden muss und Sie htmltidy nicht verwenden können, würde ich mit der Erstellung einer Datei htmltidy.sh beginnen, die Folgendes enthält:
%Vor%Um dieses Programm zu verwenden, leiten Sie den Inhalt so ein:
%Vor%Dies wird zumindest den Trick bei der von Ihnen bereitgestellten Beispieleingabe machen.
Einige Erklärung:
Dieses Spielzeugprogramm bricht sehr schnell, sobald die Komplexität der Eingabe komplexer wird. Aber das wird Ihnen eine Vorstellung davon geben, warum es besser ist, ein Standard-Dienstprogramm zu verwenden, als Ihr eigenes zu schreiben.
Ich schlage vor, dass Sie sich das Dienstprogramm html-tidy ansehen.
Sie müssen nicht selbst einen Formatierer schreiben, es gibt eine Menge existierender Dienstprogramme, die das für Sie tun, lassen Sie es beiseite, es ist keine triviale Aufgabe und "wie man einen HTML-Pretty-Print-Formatierer implementiert" wäre ein wirklich allgemeine Frage (breite Fragen sind gegen StackOverflow-Regeln).
HTML Tidy ist möglicherweise bereits auf Ihrem System installiert, es war für mich und ich erinnere mich nie daran, es zu installieren. Sie können dies überprüfen, indem Sie -
ausführen %Vor%Wenn Sie das Handbuch bekommen, dann sind Sie bereit zu rocken und zu rollen!
%Vor%Eine weitere Alternative ist xmllint, die auf Ihrem System installiert sein kann:
%Vor%