Extrahieren Sie mit Windows aus allen drei Zeilen Text

406
Mark

Ich habe eine riesige Textdatei mit Angaben zu meinen Website-Benutzern. (11 GB +). Es ist so aufgebaut:

Email: example@gmail.com Address: 1blahblahblahblah (Bitcoin Address). Password: blahblahblah 

Alle Details in einer separaten Zeile. (keine Leerzeichen zwischen ihnen).

Das Detail, das ich brauche, ist die Bitcoin-Adresse. Ich brauche sie in einer Textdatei, eine nach der anderen.

Ich brauche einfach ein Batch / Java / was auch immer Skript, das die erste Zeile überspringt, die Bitcoin-Adresse in eine Datei schreibt und dann eine weitere Zeile überspringt.

Ich benötige die exportierten BTC-Adressen in einer Liste, eine Adresse pro Zeile.

Die Ausgabe, die ich brauche:

1BeispielBeispielBeispiel

1BeispielBeispielBeispiel

1BeispielBeispielBeispiel

1BeispielBeispielBeispiel

Vielen Dank im Voraus, Jungs.

-4
Willkommen bei Super User. Leider sind wir kein Code-Writing-Service. Anstatt einfach nach Code für eine bestimmte Aufgabe zu fragen, zeigen Sie uns, was Sie bisher versucht haben (einschließlich des Codes, den Sie derzeit verwenden) und wo Sie stecken bleiben, damit wir Ihnen bei Ihrem spezifischen Problem helfen können. Fragen, die nur nach Code fragen, sind zu umfangreich und wahrscheinlich [gehalten oder geschlossen] (http://stackoverflow.com/help/closed-questions). DavidPostill vor 8 Jahren 1

3 Antworten auf die Frage

0
DavidPostill

Wie extrahiere ich Text aus jeder dritten Zeile?

Das Detail, das ich brauche, ist die Bitcoin-Adresse. Ich brauche sie in einer Textdatei, eine nach der anderen.

Sie können verwenden findstr.

Hinweis:

  • Ich habe keine 11 GB-Datei zum Testen.

Testdaten:

Email: example@gmail.com Address: address 1 (Bitcoin Address). Password: blahblahblah Email: example@gmail.com Address: address 2 (Bitcoin Address). Password: blahblahblah Email: example@gmail.com Address: address 3 (Bitcoin Address). Password: blahblahblah 

Befehl:

findstr Address data.txt > address.out 

Ausgabe:

C:\test>type address.out Address: address 1 (Bitcoin Address). Address: address 2 (Bitcoin Address). Address: address 3 (Bitcoin Address). 

Lesen Sie weiter

0
JosefZ

FINDSTR - Suche nach Zeichenketten in Dateien .

findstr /I /C:"Address:" "HUGE text file.txt">"BTC addresses" 

Weiter Ressource (erforderlich Lesung) ( >, >>usw. spezielle Seite) Redirection

0
Trav

Hier ist ein PowerShell-Skript, das jede 2. Zeile (in 3er-Gruppen) abruft und den überflüssigen Text sowie den Anfang und das Ende dieser Zeile entfernt:

$fileToProcess = "C:\users\jsmith\Dropbox\neat scripts\userInfo.txt" $fileToWrite = "C:\users\jsmith\Dropbox\neat scripts\bitcoin.txt"  $reader = [System.IO.File]::OpenText($fileToProcess) $lineCount = 1 try { for(;;) {  $line = $reader.ReadLine() if ($line -eq $null) { break } # process the line if ($lineCount -eq 2) {  $line = $line -replace "Address: " $line = $line -replace ' \(Bitcoin Address\).' Add-Content $fileToWrite ("`n"+$line)  }  $lineCount = $lineCount+1 if ($lineCount -gt 3) { $lineCount = 1} } } finally { $reader.Close() } 

Testen Sie dies unter normalen Umständen nicht, ohne eine Sicherungskopie der von Ihnen analysierten Datei zu erstellen. Ich habe dies auf meinem Computer getestet (mit einer viel kleineren Datei als der, die Sie analysieren) und sollte die Eingabedatei nicht ändern. Die Laufleistung kann jedoch variieren.

Ich bin nicht sicher, wie PowerShell-Skripts ausgeführt werden. Diese Fehlermeldung wird beim Verwenden des PowerShell-Terminals angezeigt: http://i.gyazo.com/36b80fdd2f7f37f6e7dfe1bb4d334022.png Mark vor 8 Jahren 0
Ihr Problem ist, dass Ihre PowerShell-Ausführungsrichtlinie auf eingeschränkt gesetzt ist. (Einzelheiten zu den PowerShell-Ausführungsrichtlinien finden Sie unter [this] (https://technet.microsoft.com/de-de/library/ee176961.aspx).) Schließen Sie alle derzeit geöffneten PowerShell-Fenster. Suchen Sie im Startmenü nach PowerShell, klicken Sie mit der rechten Maustaste darauf, wählen Sie "Als Administrator ausführen ..." und starten Sie es als Administrator. Geben Sie dann 'Set-ExecutionPolicy Unrestricted' ein. Vorausgesetzt, es läuft alles in Ordnung, können Sie das von mir bereitgestellte Skript ausführen. (Am einfachsten ist es wahrscheinlich, meinen Code zu kopieren und in PowerShell ISE einzufügen und von dort aus auszuführen.) Trav vor 8 Jahren 0
Okay. diesmal hat es funktioniert, aber die Ausgabe enthielt die "Adresse:" und ich brauche sie nicht, ich brauche nur die Adressen. Danke, dass Sie mir geholfen haben, Mann Mark vor 8 Jahren 0
Meine Annahme war falsch, dass Ihre Datei tatsächlich vor jeder Zeile die Wörter "Adresse:" hat. Ich werde das Skript bearbeiten, um dies zu berücksichtigen. Trav vor 8 Jahren 0
Sollte jetzt funktionieren. Trav vor 8 Jahren 0
Ich habe versucht, das neue Skript auszuführen, und bekam folgende Fehlermeldung: http://i.gyazo.com/1a2a7b220d8ac199aa1355742f093589.png Nochmals vielen Dank für Ihre Hilfe. Mark vor 8 Jahren 0
Haben Sie die beiden Variablen für die Eingabe- und Ausgabedateien oben so geändert, dass sie Ihren tatsächlichen Dateien entsprechen? Ansonsten weiß ich nicht wirklich, worum es sich bei dem Fehler handelt. Trav vor 8 Jahren 0
Die Quelldatei wurde in einem anderen Programm geöffnet. Probleme behoben und Ihr Skript funktioniert wie ein Zauber. Vielen Dank Alter! Ich weiß das wirklich zu schätzen. Mark vor 8 Jahren 0
Ich bin froh, dass es geholfen hat. Stellen Sie sicher, dass Sie die Frage als Antwort auswählen. Trav vor 8 Jahren 0