6
votes

Remplacement des caractères dans un fichier texte avec un fichier de commandes

Y a-t-il un moyen de remplacer certains caractères dans un fichier texte avec un fichier de commandes?

Je n'ai trouvé aucune commande pour le faire.


2 commentaires

Pouvez-vous donner un exemple de ce que vous voulez remplacer (avant et après)?


Je voulais juste remplacer dans un fichier texte toutes les occurrences de «<'par un caractère vide.


7 Réponses :


0
votes

Vous pouvez rechercher un programme de ligne de commande comme Grep, vous pouvez appeler à partir d'un lot qui prendra une chaîne de remplacement et un fichier et effectuera le swap pour vous.


2 commentaires

Grep est utilisé pour effectuer une recherche / un filtre ... Même Wikipedia sait que: en.wikipedia.org/wiki/ Grep


En effet, SED est plus spécifique à cette tâche, mais FYI, il existe des variantes Windows / DOS de Grep qui permettent également de remplacer.



0
votes

Vous pouvez utiliser le port DOS d'utilitaire de ligne de commande UNIX "TR".

Un port DOS gratuit peut être trouvé ici , l'un de ceux que j'aime (là-bas sont de nombreuses différentes) sont «UXUTL - Collection complète des utilitaires UNIX de ligne de commande pour DOS.»

La prestation est que vous obtenez un tas de commandes incroyablement utiles, pas seulement TR.


0 commentaires

1
votes

Vous pouvez installer UNXUTILS, puis faire

cat file|tr "a" "b"  > changed.file.name


0 commentaires

1
votes

Utilisez SED ou rien:

sed -i 's/FROM/TO/g' filename.txt


0 commentaires

4
votes

La réponse rapide est "non, pas avec les utilitaires de base"

Mais comme les autres réponses suggérées, il y a beaucoup de ports UNIX qui font ce que vous voulez. Prenez Alook à GNUWIN32 Packages .

EDIT:

D'accord, je révise mon "non" strict. Il pourrait y avoir une façon de le faire, en fonction de la complexité de votre tâche et de votre système d'exploitation. Lorsque vous utilisez Windows 2000 et supérieur, CMD fournit des extensions de commande que vous pouvez utiliser.

L'idée de base consiste à utiliser A pour boucle pour passer à travers chaque ligne d'un fichier d'entrée, puis à utiliser la substitution de chaîne fournie par la commande définie pour remplacer vos caractères.

Je n'ai aucune solution à la main mais vous pourriez essayer par vous-même, en utilisant une infromation à partir de Ce assez cool placer. Look ici pour la syntaxe de boucle et ici pour la substitution de chaîne.


2 commentaires

Le problème de base avec itération du fichier est que lorsqu'il contient des caractères spéciaux tels que & , | ou > il devient désordonné. Jetez un nombre impair de guillemets dans une ligne et tous les paris sont éteints. Je n'ai pas trouvé de moyen d'échapper correctement à ces caractères lorsqu'il existe un nombre impair de guillemets dans une ligne. Sinon c'est facile mais en désordre.


Oh, juste une autre chose: pour saute des lignes vides. Si vous avez besoin du fichier pour survivre, y compris ceux que vous devez rechercher d'autres solutions.



1
votes

Vous devez utiliser Win32 Sed et voir la page officielle GNU SED pour expliquer . C'est vraiment puissant: xxx


0 commentaires

0
votes

Même si cette question est assez ancienne, le futur lecteur peut être intéressé de savoir que si vous voulez un petit exe sans dépendances pour simplement remplacer le texte, je vous recommande d'utiliser pet .


0 commentaires