Dateinamen als neue Spalte in csv- oder txt-Datei einfügen?
Wir haben in einem Forschungsprojekt die Daten eines Experiments als Text-Datei (Spalten durch Leerzeichen getrennt) und als csv-Datei vorliegen. Jede Datei hat theoretisch 230 Zeilen, jede Zeile besteht aus einer Reihe von Messwerten. Zur einfacheren Auswertung sollen alle Dateien in eine grosse Datei gepackt werden (copy *.txt Alle.txt). Sie sollen dann später in Excel mittels Pivot-Tabellen ausgewertet werden. Allerdings bräuchten wir dafür noch die Info in jeder Zeile, aus welcher Datei der jeweilige Messwert stammt.
Momentan ist es also:
DateiA.txt:
Data_c1r1 Data_c2r1 Data_c3r1 ...
Data_c1r2 Data_c2r2 Data_c3r2 ...
...
DateiB.txt:
Data_c1r1 Data_c2r1 Data_c3r1 ...
Data_c1r2 Data_c2r2 Data_c3r2 ...
...
Und wir bräuchten:
DateiA Data_c1r1 Data_c2r1 Data_c3r1 ...
DataiA Data_c1r2 Data_c2r2 Data_c3r2 ...
...
DateiB Data_c1r1 Data_c2r1 Data_c3r1 ...
DataiB Data_c1r2 Data_c2r2 Data_c3r2 ...
...
Die 'Details' sind nicht wichtig, also ob der Dateiname in die erste Spalte kommt, oder hinten angehängt wird, ob es mit oder ohne Dateiendung ist, usw. Wir müssen nur den Dateinamen da irgendwie reinkriegen...
Kann als Batch/cmd Datei oder als Powershell oder sowas sein, kenne mich dort allerdings nicht so gut aus, d.h. Tips um Anfängerfehler zu vermeiden wären super Auch eine halbe Automatisierung wäre schon hilfreich...
Viele Grüße,
Andre
Momentan ist es also:
DateiA.txt:
Data_c1r1 Data_c2r1 Data_c3r1 ...
Data_c1r2 Data_c2r2 Data_c3r2 ...
...
DateiB.txt:
Data_c1r1 Data_c2r1 Data_c3r1 ...
Data_c1r2 Data_c2r2 Data_c3r2 ...
...
Und wir bräuchten:
DateiA Data_c1r1 Data_c2r1 Data_c3r1 ...
DataiA Data_c1r2 Data_c2r2 Data_c3r2 ...
...
DateiB Data_c1r1 Data_c2r1 Data_c3r1 ...
DataiB Data_c1r2 Data_c2r2 Data_c3r2 ...
...
Die 'Details' sind nicht wichtig, also ob der Dateiname in die erste Spalte kommt, oder hinten angehängt wird, ob es mit oder ohne Dateiendung ist, usw. Wir müssen nur den Dateinamen da irgendwie reinkriegen...
Kann als Batch/cmd Datei oder als Powershell oder sowas sein, kenne mich dort allerdings nicht so gut aus, d.h. Tips um Anfängerfehler zu vermeiden wären super Auch eine halbe Automatisierung wäre schon hilfreich...
Viele Grüße,
Andre
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 600115
Url: https://administrator.de/contentid/600115
Ausgedruckt am: 14.11.2024 um 17:11 Uhr
2 Kommentare
Neuester Kommentar
Batch
Powershell
Alternativ auch so etwas kürzer mit select-string ebenfalls als Powershell Skript
@echo off &setlocal
set "ordner=D:\Daten"
set "ausgabe=D:\ausgabe.csv"
>"%ausgabe%" (for %%a in ("%ordner%\*.csv") do for /f "usebackq delims=" %%b in ("%%a") do echo.%%~nxa %%b)
$ordner = 'D:\Daten'
$ausgabe = 'D:\ausgabe.csv'
ls $ordner -Filter *.csv -File -PipelineVariable file | %{
(gc $_.Fullname) | %{$file.Name + " " + $_}
} | sc $ausgabe
$ordner = 'D:\Daten'
$ausgabe = 'D:\ausgabe.csv'
select-string -Path "$ordner\*.csv" -Pattern '.' -AllMatches | %{$_.Filename + " " + $_.Line} | sc $ausgabe
Kann als Batch/cmd Datei oder als Powershell oder sowas sein, kenne mich dort allerdings nicht so gut aus, d.h. Tips um Anfängerfehler zu vermeiden wären super
Dafür gibt's die Administrator.de Suchfunktion .