
Ich verwende Terminal auf dem Mac und habe eine Reihe von Textdateien, die jeweils Daten wie diese enthalten:
300.50 253.50
301.00 156.26
301.50 191.57
Ich möchte eine Überschrift für die Spalten einfügen, wobei die erste mit „Wellenlänge“ und die zweite mit dem Dateinamen beschriftet ist, sodass sie folgendermaßen aussieht (der Abstand spielt keine Rolle, solange er durch ein Leerzeichen abgegrenzt ist):
Wavelength Filename
300.50 253.50
301.00 156.26
301.50 191.57
Ich habe eine Schleife, die „Wavelength“ in jede Datei einfügt, und das funktioniert wunderbar, aber das Hinzufügen des Dateinamens bereitet mir einige Probleme. Hier ist der Code:
for file in *.txt
do
ed -s $file < <(printf '%s\n' 1i "Wavelength" . wq)
done
Ich habe es mit diesen Zeilen versucht, wobei der geänderte Abschnitt fett gedruckt ist:
- -ed -s $file < <(printf '%s\n' 1i "Wellenlänge"&& $Datei.wq)
- -ed -s $file < <(printf '%s\n' 1i "Wellenlänge"&& printf $datei.wq)
- -ed -s $file < <(printf '%s\n' 1i "Wellenlänge"&& echo $datei.wq)
Wie mache ich das? Muss ich den Dateinamen als Variable speichern und die Variable drucken? Oder kann ich einen Modifikator verwenden, um den Dateinamen in eine Zeichenfolge umzuwandeln?
Bitte lassen Sie mich wissen, wenn Ihnen etwas einfällt. Vielen Dank im Voraus
Antwort1
Wie wäre es mit Folgendem:
for file in *.txt
do
ed -s $file < <(printf '%s\n' 1i "Wavelength $file" . wq)
done
Übrigens, was machen das ".wq" und das "1i"? Das habe ich noch nie gesehen...