Vinzenz Mai: mehrere zeilen in eine Datei schreiben

Beitrag lesen

Hallo,

ich möchte mehrere Zeilen in einer Datei schreiben und kenne dafür folgende Möglichkeiten

bash?

(
  echo "Zeile 1";
  echo "Zeile 10";
) > test_1.txt

hat Probleme mit Anführungszeichen in Zeilen

echo -e "Zeile 1\nZeile 2\nZeile 3\nZeile 4\nZeile 5\nZeile 6\nZeile 7\nZeile 8\nZeile 9\nZeile 10" > test_2.txt

hat die gleichen Probleme mit nicht maskierten Anführungszeichen.

cat > test_3.txt
Zeile 1
Zeile 10
<STRG>+D

Kann man die 3. Variante irgendwie in ein Skript einbauen und automatisch am Ende <STRG>+D drücken lassen?

Was hast Du vor? In der dritten Variante kommt die Eingabe von STDIN.
Warum kannst das Skript nicht gleich die Daten in die Zieldatei schreiben?

Es gibt übrigens

>>

zum Anhängen an eine bestehende Datei.

Eine mögliche Alternative wären bashs Heredocs:

(cat <<markierungszeile_fuer_das_ende_der_eingabe
Zeile 1
Zeile 2
Zeile 3
Zeile 4
markierungszeile_fuer_das_ende_der_eingabe
) > test_4.txt

Der große Vorteil von cat in allen Varianten ist es, dass Anführungszeichen kein Problem darstellen.

Übrigens, unter der Voraussetzung, dass es keine Anführungszeichen gibt, geht auch:

echo "Zeile 1
Zeile 2
Zeile 3
Zeile 4" > test_5.txt

Wenn wir schon dabei sind, mit dem Backslash kannst Du eine Anweisung auf mehrere Zeilen verteilen:

echo \ "Zeile 1
Zeile 2
Zeile 3
Zeile 4" \

test_6.txt

Alles in allem wäre Dir vermutlich mehr geholfen, wenn Du uns Dein eigentliches Ziel mitteiltest.

Freundliche Grüße

Vinzenz