Je suis en train d'écrire un script de fichier de commandes en utilisant la commande Windows et je veux changer chaque occurrence d'un espace vide avec "," Quelle est la manière la plus simple de faire cela?Rechercher et remplacer par un fichier de commandes
Répondre
Si vos utilisateurs une liste de mots sur une ligne dans un fichier texte, séparés par des espaces, par exemple:
one two three four
Créer un fichier batch SpaceToComma.bat comme suit:
@echo off
setlocal
for /F "tokens=* delims= " %%a in (%1) do @set data=%%a
echo %data: =,%
endlocal
Ensuite, exécutez, vous aurez e Les mots séparés par des virgules. c'est ce que tu veux?
C:\>SpaceToComma.bat data.txt
one,two,three,four
Si vous avez un fichier sur plusieurs lignes, cela fera:
donnees.txt
one two three four
five six seven
SpaceToComma.bat
@echo off
setlocal
for /F "tokens=* delims= " %%a in (%1) do @call :processaline %%a
endlocal
goto :eof
:processaline
setlocal
set data=%*
echo %data: =,%
endlocal
goto:eof
Sortie
C:\>SpaceToComma.bat data.txt
one,two,three,four
five,six,seven
(Il y a probablement une manière intelligente de faire ceci sans le sous-programme, en utilisant les! Données! syntaxe pour l'expansion de variable retardée, mais je ne pouvais pas l'obtenir pour fonctionner avec la syntaxe de substitution.)
Si ce n'est pas ce que vous voulez, alors expliquez et je peux essayer de vous aider.
(PS: je prends plaisir à l'aide des fichiers batch où les gens insistent sur le fait qu'il ne peut pas être fait.)
Eh bien, cela dépendra beaucoup de la façon dont vous obtenez les données, mais vous pourrez peut-être trouver quelque chose avec une construction For-Do. Faites en sorte que le séparateur de champs soit un espace puis reconstruisez la chaîne dans le do avec un, entre chaque jeton. Puis-je suggérer un langage de script plus robuste? Vous devriez avoir VBScript sur à peu près n'importe quel arc de fenêtres relativement moderne.
Vous pouvez télécharger sed.exe de http://unxutils.sourceforge.net/ et exécutez la commande suivante:
sed -e "s/ /,/" infile.txt >outfile.txt
- 1. comment rechercher et remplacer un tel cas
- 2. Assistance Rechercher et remplacer Regex
- 3. Rechercher et remplacer dans Shell
- 4. Python Regex Rechercher et remplacer
- 5. sed: Rechercher et remplacer colonne variable
- 6. Rechercher et remplacer le jeton Regex
- 7. Rechercher/Remplacer Word Puzzle
- 8. Multiline Regular Expression rechercher et remplacer!
- 9. Rechercher et remplacer les données LIKE sql
- 10. Comment rechercher et remplacer du texte dans un fichier à partir d'un script shell?
- 11. Rechercher et remplacer une chaîne dans un ensemble de fichiers XML à l'aide des commandes du shell
- 12. Rechercher des mots, Remplacer Liens
- 13. Textmate Regex Rechercher Remplacer Aide
- 14. Comment puis-je rechercher et remplacer en XML avec Python?
- 15. Un problème avec le fichier de commandes
- 16. Comment faire rechercher/remplacer dans un fichier « binaire » de la ligne de commande
- 17. Dans un fichier batch, est-il possible de remplacer cette utilisation de SED et TR par une boucle for?
- 18. Rechercher et remplacer les modèles dans une chaîne
- 19. Rechercher par programme du texte dans un fichier PDF et indiquer le numéro de page?
- 20. Rechercher et remplacer: Quel est le raccourci approprié?
- 21. Telerik RadEditor Rechercher et remplacer en HTML View
- 22. Comment rechercher et remplacer des entités HTML avec jQuery?
- 23. Lots/Rechercher et modifier des lignes dans un fichier TXT
- 24. Regex rechercher et remplacer où le remplacement est un mod du terme de recherche
- 25. Remplacer le fichier versionné par le fichier non versionné
- 26. Rechercher et remplacer un terme dans une base de données MySQL
- 27. Remplacer les caractères dans le fichier par index
- 28. Comment rechercher un fichier .htaccess avec Windows?
- 29. Rechercher des fichiers dans un script de traitement par lots et traiter ces fichiers?
- 30. Perl: boucle à travers un fichier et le remplacer
que vous vouliez dire 'spacetocomma.bat' –
Merci PA. Réponse corrigée. (Ravi de voir quelqu'un le lire aussi attentivement.) –
@RichardA J'ai utilisé SpaceToComma.bat dans un fichier csv de 2 Go et j'ai bien travaillé. Cependant, pour chaque espace, il met une virgule, i. e., 2014 12 1 est devenu 2014,, 12,, 1. Existe-t-il un moyen de reconnaître différents espaces et de les remplacer par une seule virgule? (par exemple, de 2014 12 1 à 2014, 12,1). –