ubuntuusers.de

Dateiname auslesen und in die Datei schreiben

Status: Gelöst | Ubuntu-Version: Ubuntu 6.10 (Edgy Eft)
Antworten |

frasch

Anmeldungsdatum:
28. April 2006

Beiträge: 242

Wohnort: Rostock

Hallo Forum,

Ich habe eine Menge (500) an Textdateien, die in den ersten drei Zeilen Daten von einem Messgerät enthalten. Darunter kommt dann eine Spalte mit Werten (15000 Werte). Diese Dateien füge ich mittels paste zu einer Datei (je nach Anforderung für GnuPlot) zusammen. Nun möchte ich die ersten drei Zeilen aus der jeweiligen Datei entfernen und durch den Dateinamen ersetzen und dann die Dateien zusammen fügen, so dass am Ende folgendes Muster entsteht

Dateiname1 Dateiname2 Dateiname3 ......
Wert1 Wert1 Wert1
Wert2 Wert2 Wert3
.. .. ..
.. .. ..
.. .. ..

Die einzelnen Dateien entsprechen dann einer Spalte der zusammengefügten Dateien.

Lässt sich so etwas mit einem shell-skript realisieren? Ich habe mir schon mal sed angeschaut, steige da aber im Moment nicht durch (->Zeitmangel ☹ )

Für eure Hilfe wäre ich sehr dankbar

Gruß Frank

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4687

Wohnort: Berlin

Mir ist nach der Beschreibung noch nicht ganz klar was Du hast und was Du haben willst. Ich rate mal:

Etwas in der Richtung (ungetestet):

for filename in *.txt
do
  tmpname="abc_$filename.txt.tmp"
  echo "$filename" > "$tmpname"
  sed -e '1,3d' "$filename" >> "$tmpname"
done

paste abc_*.txt.tmp > result.txt

rm abc_*.txt.tmp

Es werden temporäre Dateien aus den 500 Eingabedateien erzeugt bei denen die ersten drei Zeilen durch den Dateinamen ersetzt werden. Der sed-Aufruf gibt alles ausser den ersten drei Zeilen aus.

frasch

(Themenstarter)

Anmeldungsdatum:
28. April 2006

Beiträge: 242

Wohnort: Rostock

Hi,
ich werde das gleich mal ausprobieren, dauert bloß ein wenig, da ich grade am Messen bin.
Klingt aber gut. Nochmal zur Erläuterung am Beispiel mit zwei Dateien
Ich habe zwei Dateien, die T1.txt und T2.txt heissen. In den ersten drei Zeilen jeder Datei stehen Angaben zum Messgerät und Messdatum. Ab Zeile vier folgt in jeder Datei eine Spalte mit 15000 einzelnen Messwerten (Zeilen 4-15004). Jetzt möchte ich die ersten drei Zeilen von T1.txt und T2.txt entfernen und mit dem jeweiligen Dateinamen ersetzen und speichern (Wieder als T1.txt und T2.txt). Der nächste Schritt wäre dann:

paste T1.txt T2.txt > Ergebnis.txt

Sorry, ich hoffe das ist verständlicher.

Frank

frasch

(Themenstarter)

Anmeldungsdatum:
28. April 2006

Beiträge: 242

Wohnort: Rostock

@Marc 'BlackJack' Rintsch

Vielen Dank, dass funktioniert.

Einen schönen Sonntag noch

Frank

Antworten |