Bash Script, gibt Output in einer Zeile, statt Zeilenumbrüche?
Hallo,
ich habe ein kleines Bash Script, um den Text zwischen zwei Schlüsselwörtern zu erfassen. Allerdings ist der Text, der dann in der Variable gespeichert wird in einer Zeile, statt wie beim normalen Output des Befehls in mehreren Zeilen. Wie kann ich es hinkriegen, dass die Zeilenumbrüche wieder da sind?
output="$(awk '/START/{ f = 1; next } /END/{ f = 0 } f' datei)"
echo $output
3 Antworten
Setze das Argument in Anführungszeichen:
echo "$output"
Ohne Anführungszeichen bildet jedes Wort in $output ein eigenes Argument für echo, und diese Argumente werden einzeln (mit Leerzeichen getrennt) ausgegeben.
versuche es mal so ähnlich
echo -e "Das \n ist \n ein \n Test"
Ein echo enthält soweit ich weiß nur eine Zeile ohne Umbrüche.
Dann müsstest du immer dort wo du den Umbruch willst, einen einbauen. Dazu müsstest du vorher die Umbrüche herausfiltern.
Das "echo" ist eigentlich mehr deklarativ gedacht gewesen. Im Grunde will ich das Output vom AWK in eine Variable haben und dann in eine Datei schreiben.
Die "\n" Zeilenumbrüche kenne ich, aber wie soll ich das in mein AWK Output einbauen?