Mit Powershell Wörter aus einem Textdokument filtern
Hallo,
Ich habe dieses Forum gerade dank Google gefunden und hoffe, dass ihr mir bei einem großen Problem helfen könnt.
Folgendes: Ich habe ein Textdokument mit englischen Wörter samt deutscher Übersetzung. Der Inhalt sieht so aus:
fire:feuer
bridge:brücke
you:du
answer:antwort
letter:brief
Also immer "englisch Doppelpunkt deutsch". Das Textdokument ist sehr groß; alle englischen Wörter stehen (hoffentlich) drin.
Ich will jetzt folgendes machen: Alle englischen Wörter, die 10 Zeichen lang sind, sollen in dem Textdokument "10zeichen.txt" gespeichert werden.
Die Länge der deutschen Wörter ist egal. Es geht nur um die Länge der englischen Wörter.
Der Befehl "Sort-Object Length" bringt mir deshalb nichts. Dann wird bei der Länge auch der deutsche Teil mit einbezogen.
Jetzt meine Frage: Wie kann ich alle englischen Wörter, welche 10 Zeichen lang sind, samt deutscher Übersetzung in ein anderes Textdokument
verschieben?
Das neue Textdokumt sähe dann so aus:
ballplayer:ballspieler
discarding:verwerfen
astronauts:astronauten
navigators:navigatoren
Das ganze will ich natürlich nicht nur mit 10 Zeichen machen, aber das schaffe ich dann selber. Am Ende habe ich dann alle englischen Wörter nach Länge sortiert.
Also ein Textdokument mit allen englischen Wörtern aus zwei Buchstaben, eins mit allen die drei Buchstaben haben usw. usw.
Wenn möglich würde ich das gerne mit Powershell machen. Ich nutze Windows7 64bit.
Ich habe dieses Forum gerade dank Google gefunden und hoffe, dass ihr mir bei einem großen Problem helfen könnt.
Folgendes: Ich habe ein Textdokument mit englischen Wörter samt deutscher Übersetzung. Der Inhalt sieht so aus:
fire:feuer
bridge:brücke
you:du
answer:antwort
letter:brief
Also immer "englisch Doppelpunkt deutsch". Das Textdokument ist sehr groß; alle englischen Wörter stehen (hoffentlich) drin.
Ich will jetzt folgendes machen: Alle englischen Wörter, die 10 Zeichen lang sind, sollen in dem Textdokument "10zeichen.txt" gespeichert werden.
Die Länge der deutschen Wörter ist egal. Es geht nur um die Länge der englischen Wörter.
Der Befehl "Sort-Object Length" bringt mir deshalb nichts. Dann wird bei der Länge auch der deutsche Teil mit einbezogen.
Jetzt meine Frage: Wie kann ich alle englischen Wörter, welche 10 Zeichen lang sind, samt deutscher Übersetzung in ein anderes Textdokument
verschieben?
Das neue Textdokumt sähe dann so aus:
ballplayer:ballspieler
discarding:verwerfen
astronauts:astronauten
navigators:navigatoren
Das ganze will ich natürlich nicht nur mit 10 Zeichen machen, aber das schaffe ich dann selber. Am Ende habe ich dann alle englischen Wörter nach Länge sortiert.
Also ein Textdokument mit allen englischen Wörtern aus zwei Buchstaben, eins mit allen die drei Buchstaben haben usw. usw.
Wenn möglich würde ich das gerne mit Powershell machen. Ich nutze Windows7 64bit.
Please also mark the comments that contributed to the solution of the article
Content-Key: 174257
Url: https://administrator.de/contentid/174257
Printed on: April 25, 2024 at 17:04 o'clock
2 Comments
Latest comment
Hallo ichKoeln,
teste mal das hier:
Der Name der Eingabedatei kommt in
Gruß
Friemler
teste mal das hier:
$InFile = "words.txt"
$OutFileName = "words"
$OutFileExt = "txt"
$Content = Get-Content $InFile
$Content | ForEach-Object {
$IColon = $_.IndexOf(':')
$_ | Add-Content $($OutFileName + $IColon + "." + $OutFileExt)
}
Der Name der Eingabedatei kommt in
InFile
. OutFileName
stellt den ersten Teil des Namens der Ausgabedateien dar (wird beim Scriptlauf um die Länge der in der jeweiligen Datei gespeicherten englischen Wörter ergänzt) und OutFileExt
ist die Dateierweiterung der Ausgabedateien.Gruß
Friemler