.png)
Ich habe zum Beispiel einen Text:
cd123aaq54
und ich möchte in einer anderen Datei nur Zahlen trennen, also könnte ich
12354
in der Ausgabe.
Ich habe viele Befehle ausprobiert, wie:
Get-Content text.txt | Select-String -Pattern '[0-9]'
Unter Linux ist es viel einfacher. Geben Sie einfach Folgendes ein:
grep -o '[0-9][0-9]*' text >numbers
Wie kann ich dies in einer Windows- cmd
Shell tun?
Antwort1
Wie kann ich alphanumerische Zeichen aus einer Eingabedatei entfernen, sodass nur Zahlen übrig bleiben?
Nachfolgend finden Sie zwei Lösungen:
- Power Shell
- Windows-Batchdatei
PowerShell-Lösung
Verwenden Sie den folgenden Befehl:
Get-Content input.txt | ForEach-Object {$_ -Replace "[^0-9]", ""} > output.txt
Anmerkungen:
input.txt
enthält den zu filternden Text.output.txt
enthält den gefilterten TextAlle nicht numerischen Zeichen (nicht nur Buchstaben) werden entfernt.
Beispiel:
PS F:\test> type .\input.txt
cd123aaq54
zyx456abc321
PS F:\test> Get-Content input.txt | ForEach-Object {$_ -Replace "[^0-9]", ""} > output.txt
PS F:\test> type .\output.txt
12354
456321
PS F:\test>
Windows-Batchdateilösung
Verwenden Sie die folgende Batchdatei (RemoveAlpha.cmd):
@echo off
setlocal enabledelayedexpansion
set _alpha=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
rem read input file line by line
for /f "usebackq tokens=*" %%i in (`type %1`) do (
rem strip alpha characters by using them as delimeters
for /f "tokens=1,2 delims=%_alpha%" %%j in ("%%i") do (
rem write stripped text to output file
echo %%j%%k>>%2
)
)
endlocal
Anmerkungen:
!@#$%^&*()
Das Obige setzt voraus , dass die Eingabedatei keine Sonderzeichen ( ...) enthält (diese werden nicht entfernt).for
Der „Trick“ besteht darin, die Zeichenfolge aus alphanumerischen Zeichen als Trennzeichen für den zweiten Befehl zu verwenden .
Verwendung:
RemoveAlpha input output
input
: Pfadname für die Eingabedatei, die den zu filternden Text enthält.output
: Pfadname der Ausgabedatei, die den kopierten Filtertext enthalten soll.
Beispiel:
F:\test>RemoveAlpha input.txt output.txt
F:\test>type input.txt
cd123aaq54
zyx456abc321
F:\test>type output.txt
12354
456321
Weitere Informationen
- Ein AZ-Index der Windows CMD-Befehlszeile- Ein hervorragendes Nachschlagewerk zu allem, was mit der Windows-Eingabeaufforderung zu tun hat.
- für /f- Befehl mit den Ergebnissen eines anderen Befehls wiederholen.
- Typ- Zeigt den Inhalt einer oder mehrerer Textdateien an.