Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

TXT File mit Batch Sript filtern

Frage Entwicklung Batch & Shell

Mitglied: hospiman

hospiman (Level 1) - Jetzt verbinden

28.11.2013 um 15:30 Uhr, 1496 Aufrufe, 8 Kommentare, 1 Danke

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
Mitglied: dave84620
28.11.2013 um 16:40 Uhr
Hallo hospiman,

schau Dir mal den die Hilfe des Befehls "for" an.
Schöne Grüße

Dave
Bitte warten ..
Mitglied: colinardo
28.11.2013, aktualisiert 29.11.2013
Hallo hospiman,
z.B. so
01.
@echo off 
02.
set "file=test.txt" 
03.
set "ausgabe=test2.txt" 
04.
set suchstring="IchSuchDich" 
05.
 
06.
for /f "usebackq tokens=1,2,3,* delims=	" %%a in ("%file%") DO @( 
07.
	echo %%c | findstr /i "%suchstring%" && echo %%a	%%b	%%c	%%d>>"%ausgabe%" 
08.
)
Im jetzigen Zustand vergleicht das Script keine Groß- und Kleinschreibung des Suchstrings. Wenn du das willst musst die das /i hinter dem findstr entfernen.

Wenn's dann noch was in Powershell sein darf:
01.
$fileIN = "c:\datenIN.txt" 
02.
$fileOUT = "c:\datenOUT.txt" 
03.
$suchwort = "Dein Suchwort" 
04.
$content = gc $fileIN | ?{$_.Split("`t")[2] -match $suchwort} | Out-File $fileOUT
Grüße Uwe
Bitte warten ..
Mitglied: dave84620
28.11.2013 um 17:01 Uhr
das tut aber nicht das was der TO möchte ;o)
Bitte warten ..
Mitglied: colinardo
28.11.2013, aktualisiert um 17:05 Uhr
Zitat von dave84620:
das tut aber nicht das was der TO möchte ;o)
doch das tut es, was meinst du denn was er will ?? dann poste doch bitte deine Lösung ...
Bitte warten ..
Mitglied: dave84620
28.11.2013 um 17:07 Uhr
@colinardo

sorry, hatte den ersten Post falsch verstanden. Du hast recht :o)

Schöne Grüße
Dave
Bitte warten ..
Mitglied: Endoro
28.11.2013 um 23:20 Uhr
Hey, für solche Sachen wurde awk for Windows erfunden:
- Spalte 3 ("C") entspricht genau "gewissen Wert":
01.
awk "$3==\"gewissen Wert\"" TabText.txt>Out.txt
- Spalte 3 enthält "gewissen Wert":
01.
awk "$3~/gewissen Wert/" TabText.txt>Out.txt
lg.
Bitte warten ..
Mitglied: hospiman
29.11.2013 um 09:32 Uhr
Vielen Dank für Eure Lösungen ich habe die Lösung von @colinardo eingebaut und die läuft super perfekt. Ein kleinen Fehler habe ich noch wenn in der test.txt ein Feld in der Tabelle nicht gefüllt ist verschiebt es in der test2.txt die Spalten auf der Zeile.

Bsp.:

test.txt
a | b | c | d | e | f
1 | 2 | 3 | 4 | 5 | 6
1 | 2 | 3 | | 5 | 6
1 | 2 | 3 | 4 | 5 | 6

test2.txt
a | b | c | d | e | f
1 | 2 | 3 | 4 | 5 | 6
1 | 2 | 3 | 5 | 6 |
1 | 2 | 3 | 4 | 5 | 6
Bitte warten ..
Mitglied: colinardo
29.11.2013, aktualisiert um 10:03 Uhr
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:
01.
@echo off 
02.
set "file=test.txt" 
03.
set "ausgabe=test2.txt" 
04.
set suchstring="IchSuchDich" 
05.
for /F "usebackq delims=" %%z in ("%file%") do ( 
06.
	setlocal EnableDelayedExpansion 
07.
	set line=%%z 
08.
	set line=!line:		=	 	! 
09.
	set line=!line:		=	 	! 
10.
	for /f "tokens=1,2,3,* delims=	" %%a in (^"!line!^") DO @( 
11.
		echo %%c | findstr /i "%suchstring%" &&	echo %%a	%%b	%%c	%%d>>"%ausgabe%" 
12.
13.
)
sollten mehr als 2 leere Spalten auftreten musst du Zeile 9 entsprechend oft wiederholen.

Grüße Uwe
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...