Bash Script, gibt Output in einer Zeile, statt Zeilenumbrüche?

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"
Trmbl 
Fragesteller
 14.08.2021, 13:00

Die "\n" Zeilenumbrüche kenne ich, aber wie soll ich das in mein AWK Output einbauen?

0
emerel  14.08.2021, 13:02
@Trmbl

Ich kenne mich mit awk zu wenig aus, ich programmiere mir i.d.R. alles mit C oder mit C++.

0
Trmbl 
Fragesteller
 14.08.2021, 13:11
@HarryXXX

Ich habe schon eine Alternative Methode gefunden, tdm danke

output="$(awk "/START/{ f = 1; next } /END/{ f = 0 } f" datei)"
printf "%s" "$output" > testdatei
0

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.

Trmbl 
Fragesteller
 14.08.2021, 13:02

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.

0