Est-il possible de remplacer regex à partir de la ligne de commande? En ce moment, j'utilise notepad ++ pour ce faire. En ligne de commande, je ne peux utiliser que FINDSTR qui ne peut que localiser les fichiers / lignes usinés
EDIT:
Peut - être qu'il sera possible de créer un script VB et de l'exécuter à partir de cmd? Je viens de créer un fichier "hi.vbs" avec le contenu
Msgbox "Hi Buddy"
Ensuite, cmd me permet de l'exécuter directement en tapant "hi" à partir de la ligne de commande.
Donc, si ce n'est pas possible avec un script de traitement par lots, alors je peux utiliser un traitement par lot de scripts VB. Ou..?
Réponses:
allez ici
http://gnuwin32.sourceforge.net/packages.html faites
défiler jusqu'à SED. Téléchargez également coreutils pendant que vous y êtes.
cette commande remplacera a par b globalement et sur chaque ligne. donc pas seulement la première occurrence sur la ligne.
par exemple en utilisant sed "s / a / b / g" a.txt
VBScript prend en charge les expressions régulières, vous pouvez le rechercher et le remplacer.
Affiche bxxx dxxx xxx
la source
J'ai écrit un outil de ligne de commande gratuit pour Windows pour ce faire. Il s'appelle rxrepl , il prend en charge Unicode et la recherche de fichiers. Certains peuvent trouver cela utile.
la source
C:\WINDOWS\System32\cmd.exe
Le Scripting Guy explique comment procéder dans PowerShell (aucun téléchargement supplémentaire sur les systèmes d'exploitation Windows les plus récents, vous l'avez probablement déjà installé).
Démarrez-le, exécutez ce qui suit (pour remplacer a
*
par a@
):Cela prend en charge les expressions régulières .NET , y compris l'anticipation positive et négative, et toutes sortes de choses que notepad ++ ne supportait pas avec regex avant la version 6.x (autant que j'aime notepad ++).
la source
J'ai trouvé fnr.exe pour cela. Il a une interface graphique et une ligne de commande.
Affichage des options de ligne de commande
la source
On dirait que vous pouvez utiliser l'expression régulière avec FINDSTR
findstr [Windows CMD] :
Dans l'aide de FindStr (
Findstr /?
):la source
findstr
ne peut pas remplacer le texte dans les fichiers!Je suis un peu en retard à la fête, mais JREPL.BAT est un utilitaire hybride basé sur JScript / script batch qui s'exécute nativement sur n'importe quelle machine Windows à partir de XP.
Une documentation complète est intégrée au script, accessible via
JREPL /?
ou utiliséeJREPL /??
pour la sortie paginée.JREPL utilise une expression régulière ECMA standard fournie avec JScript. Les expressions régulières ECMA ne sont pas aussi puissantes que les expressions régulières .NET disponibles pour PowerShell, mais elles sont encore plutôt bonnes. Et je pense que l'utilisateur moyen trouvera cet utilitaire plus facile à utiliser que PowerShell.
Les options JREPL intégrées fournissent déjà beaucoup de puissance inhérente, mais la possibilité d'injecter du JScript fourni par l'utilisateur ouvre vraiment des possibilités incroyables.
J'ai développé le script parce que mon lieu de travail ne permet pas le téléchargement de fichiers exe non standard, mais n'a aucune restriction sur l'écriture de scripts batch ou JScript :-)
Suivez simplement le lien et copiez le code du script dans un fichier nommé JREPL.BAT. Lisez les articles suivants de ce fil pour des exemples d'utilisation et d'historique de développement. Il existe également de nombreuses réponses StackOverflow qui utilisent JREPL.BAT.
la source
Deux bons choix sont soit Cygwin qui vous donnera un environnement semblable à Unix, bash (alternative à cmd.exe); et Unxutils , ports Win32 d'une collection d'utilitaires Unix individuels. Dans les deux packages, voir «sed», «awk» et «grep».
la source
Vous pouvez également utiliser GSAR pour effectuer une recherche et un remplacement en ligne de commande. Fonctionne également avec hexadécimal et binaire. Il ne fera pas le levage de charges lourdes complexe que regex peut effectuer, mais pour la recherche de base et le remplacement, il fait le travail rapidement et facilement.
la source