Ich habe eine Datei namens "test_file1". Ich möchte jede Zeile dieser Datei lesen und in eine andere Datei namens "test_file2" schreiben. Beide Dateien befinden sich im selben Verzeichnis.Zeile für Zeile lesen und in ein anderes Datei-Shell-Skript schreiben
Ich versuchte
#!/bin/sh
# My first Script
echo "Hello World!"
file=$(<test_file1.txt)
echo "Test" >> test_file2.txt
while IFS= read -r line;do
echo -e "legendary" >> test_file2.txt
echo "$line" >> test_file2.txt
done <"$file"
echo "completed"
Das Skript "Test" in test_file2.txt schreibt aber 'legendäre' oder die Linien in test_file1 in test_file2 nicht schreiben.
Kann jemand bitte helfen.
Vielen Dank.
Hallo DAXaholic, Danke . Funktioniert jetzt gut. !! –
Es wäre viel effizienter, nach "done" eine einzige Umleitung zu machen, als die Datei innerhalb der Schleife wiederholt zu öffnen und zu schließen. Besser wäre es, dies durch ein sehr gutes Awk-Skript zu ersetzen; Eine Shell-Schleife zum Lesen und Schreiben von Zeilen ist häufig ein Antipattern. – tripleee
Natürlich wäre es effizienter, ein awk-Skript zu schreiben - es wäre noch effizienter, eine native Anwendung in C zu schreiben :) Wenn dieses Skript Tausende von Zeilen verarbeitet, dann stimme ich zu und es sollte wahrscheinlich umstrukturiert werden. In diesem Fall nehme ich einfach an (bc mangelnde Infos), dass es keine so engen Perf - Einschränkungen gibt und daher ist es besser, dem Fragenden die fehlerhaften Teile seines eigenen Codes zu zeigen, anstatt ihm einen komplett neuen Code - Schnipsel zu geben (vielleicht sogar in eine andere Sprache), die vielleicht schwer zu verstehen ist. Trotzdem, danke für die zusätzliche Notiz! – DAXaholic