meine Datei ref.txt enthält das Wort "hi" "hello" "aloha" wie folgt:
hi
hello
aloha
Und ich habe noch eine Datei abc.txt welches viele Wörter enthält, einschließlich der obigen 3 Wörter.
Jetzt habe ich einen Powershell-Stapel entwickelt, in dem ich die Welten durchsuchen kann abc.txt und extrahieren Sie die Zeile mit den Wörtern in eine neue Datei done.txt . ich benutze -Spiel Befehl, um das Wort zu finden.
Wie benutzt man die Datei? ref.txt Welche enthält die Wörter für den Befund, anstatt die Wörter in Codierung zu deklarieren? Es ist in Ordnung, wenn es in cmd.exe oder Power Shell Kodierung. Erleuchte mich bitte.
$source = "C:\temp\abc.txt"
$destination = "C:\temp\done.txt"
$hits = select-string -Path $source -SimpleMatch "hi","hello","aloha"
$filecontents = get-content $source
foreach($hit in $hits) {
$filecontents[$hit.linenumber-1]| out-file -append
$destination "" |out-file -append $destination
}
powershell
batch-file
Poobalan
quelle
quelle
Antworten:
Nach dem, was ich in Ihrer Frage verstehe, möchten Sie die Wörter in ref.txt als Suchkriterium verwenden. Wenn Sie also eine Datei abc.txt haben, die diese Wörter enthält, werden die Zeilen, die die Wörter enthalten, in einer Datei done zurückgegeben. TXT. Dies kann einfach in cmd.exe auf eine von mehreren Arten erreicht werden.
Die obige Lösung würde jede Zeile zurückgeben, die eines der Wörter enthält (auch wenn sie sich in einem Satz oder einem Teil eines anderen Wortes wie hi und high befinden), aber die Groß- / Kleinschreibung nicht berücksichtigen.
Wenn Sie also nur Wörter in der Datei und kein Wort im Satz suchen möchten, können Sie dies tun
findstr /BE /g:ref.txt abc.txt > done.txt
quelle
Sie können den Powershell-Befehl verwenden
get-content
Sie erhalten eine Zeichenfolge, die Sie aufteilen können
\n
jede Zeile separat zu bekommen.Teilen Sie es und speichern Sie es in einem Array. Führen Sie dann für jeden Gegenstand eine Aktion Ihrer Wahl mit aus
Hier finden Sie weitere Informationen Hier .
Wenn Sie alle drei Wörter gleichzeitig für die Suche verwenden möchten, ersetzen Sie einfach die
\n
mit,
und platziere in deinem Befehl danach-SimpleMatch
quelle