J'ai un texte, par exemple:
cd123aaq54
et je voudrais séparer uniquement les numéros dans un autre fichier, afin que je puisse avoir
12354
dans la sortie.
J'ai essayé beaucoup de commandes comme:
Get-Content text.txt | Select-String -Pattern '[0-9]'
Sous Linux c'est beaucoup plus facile, il suffit de:
grep -o '[0-9][0-9]*' text >numbers
Comment puis-je faire cela dans un cmd
shell Windows ?
grep
, bien que toutes n’aient pas cette-o
option.bash.exe
se beaucoup, mais dans un fichier zip 5.6MB, ainsi quebash
, il y a plus de 100 des utilitaires UNIX, y comprissed
,wget
,find
,xargs
et bien sûrgrep
, et cette version prend en charge-o
. Il n'y a pas d'installation: extrayez-vous dans un répertoire, ajoutez-le à votrePATH
et exécutez-le selon vos besoins. Ou vous pouvez ajouter des utilitaires sélectionnés à un répertoire existant déjà dans votre chemin. Ce sont toutes des implémentations 32 bits, ce qui signifie qu'elles fonctionneront sur tous les systèmes Windows depuis 98. Malheureusement, il n'y en a pasman
.Réponses:
Comment puis-je effacer les caractères alpha d'un fichier d'entrée en ne laissant que des nombres?
Voici deux solutions:
Solution PowerShell
Utilisez la commande suivante:
Remarques:
input.txt
contient le texte à filtrer.output.txt
contient le texte filtréTous les caractères non numériques (pas seulement les caractères alpha) seront supprimés.
Exemple:
Solution de fichiers batch Windows
Utilisez le fichier de commandes suivant (RemoveAlpha.cmd):
Remarques:
Ce qui précède suppose qu'il n'y a pas de caractères spéciaux (
!@#$%^&*()
...) dans le fichier d'entrée (ils ne seront pas supprimés).Le «truc» consiste à utiliser la chaîne de caractères alpha comme délimètres pour la deuxième
for
commande.Usage:
input
: Chemin d'accès au fichier d'entrée contenant le texte à filtrer.output
: Chemin du fichier de sortie contenant le texte du filtre copié.Exemple:
Lectures complémentaires
la source