TXT File mit Batch Sript filtern
Hallo,
ich bin völliger Newbie was Batch Skripte angeht. Ich muss folgendes tun:
-Ich habe eine .txt Datei die mit TABS getrennt (Datei kommt ursprünglich aus einer MSSQL)
-Ich muss in einer Spalte (C) nach einem gewissen Wert suchen
-Die Zeilen mit diesem Wert sollen in eine neue .txt Datei mit der selben Struktur gespeichert werden.
Viele Grüße
ich bin völliger Newbie was Batch Skripte angeht. Ich muss folgendes tun:
-Ich habe eine .txt Datei die mit TABS getrennt (Datei kommt ursprünglich aus einer MSSQL)
-Ich muss in einer Spalte (C) nach einem gewissen Wert suchen
-Die Zeilen mit diesem Wert sollen in eine neue .txt Datei mit der selben Struktur gespeichert werden.
Viele Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 223206
Url: https://administrator.de/forum/txt-file-mit-batch-sript-filtern-223206.html
Ausgedruckt am: 06.04.2025 um 22:04 Uhr
8 Kommentare
Neuester Kommentar
Hallo hospiman,
z.B. so
Im jetzigen Zustand vergleicht das Script keine Groß- und Kleinschreibung des Suchstrings. Wenn du das willst musst die das
Wenn's dann noch was in Powershell sein darf:
Grüße Uwe
z.B. so
@echo off
set "file=test.txt"
set "ausgabe=test2.txt"
set suchstring="IchSuchDich"
for /f "usebackq tokens=1,2,3,* delims= " %%a in ("%file%") DO @(
echo %%c | findstr /i "%suchstring%" && echo %%a %%b %%c %%d>>"%ausgabe%"
)
/i
hinter dem findstr
entfernen.Wenn's dann noch was in Powershell sein darf:
$fileIN = "c:\datenIN.txt"
$fileOUT = "c:\datenOUT.txt"
$suchwort = "Dein Suchwort"
$content = gc $fileIN | ?{$_.Split("`t")[2] -match $suchwort} | Out-File $fileOUT
Grüße Uwe
doch das tut es, was meinst du denn was er will ?? dann poste doch bitte deine Lösung ...
Hey, für solche Sachen wurde awk for Windows erfunden:
- Spalte 3 ("C") entspricht genau "gewissen Wert":
- Spalte 3 enthält "gewissen Wert":
lg.
- Spalte 3 ("C") entspricht genau "gewissen Wert":
awk "$3==\"gewissen Wert\"" TabText.txt>Out.txt
awk "$3~/gewissen Wert/" TabText.txt>Out.txt
Hallo hospiman,
wenn zwei Tabs direkt hintereinander stehen(ohne jegliches Zeichen dazwischen) musst du einem Trick anwenden, der zwischen zwei oder drei aufeinanderfolgenden Tabs jeweils ein Leerzeichen einfügt damit die FOR-Schleife diese nicht zusammenfasst:
sollten mehr als 2 leere Spalten auftreten musst du Zeile 9 entsprechend oft wiederholen.
Grüße Uwe
wenn zwei Tabs direkt hintereinander stehen(ohne jegliches Zeichen dazwischen) musst du einem Trick anwenden, der zwischen zwei oder drei aufeinanderfolgenden Tabs jeweils ein Leerzeichen einfügt damit die FOR-Schleife diese nicht zusammenfasst:
@echo off
set "file=test.txt"
set "ausgabe=test2.txt"
set suchstring="IchSuchDich"
for /F "usebackq delims=" %%z in ("%file%") do (
setlocal EnableDelayedExpansion
set line=%%z
set line=!line: = !
set line=!line: = !
for /f "tokens=1,2,3,* delims= " %%a in (^"!line!^") DO @(
echo %%c | findstr /i "%suchstring%" && echo %%a %%b %%c %%d>>"%ausgabe%"
)
)
Grüße Uwe