Jérôme
Jérôme

Reputation: 27027

Replacing characters in a text file with a batch file

Is there a way to replace some characters in a text file with a batch file?

I didn't find any command to do that.

Upvotes: 6

Views: 13911

Answers (7)

Qben
Qben

Reputation: 2623

Even though this question is quite old, future reader may be interested to know that if you want a small exe with no dependencies for just replacing text I recommend using FART.

Upvotes: 0

Frank Bollack
Frank Bollack

Reputation: 25166

The quick answer is "No, not with basic windows utilities"

But as the other answers suggested, there are lots of unix ports out there that do what you want. Take alook at gnuwin32 packages.

EDIT:

Okay, I revise my strict "No". There might be a way of doing it, depending on the complexity of your task and your OS. When using windows 2000 and above, cmd provides command extensions that you can use.

The basic idea is to use a FOR loop to go through each line of an input file and then to use string substitution provided by the SET command to replace your characters.

I have no solution at hand but you might try on your own, using infromation from this quite cool site. Look here for the FOR loop syntax and here for the string substitution.

Upvotes: 4

enguerran
enguerran

Reputation: 3291

You have to use WIN32 SED and see the official gnu sed page for explanation. It is really powerful :

> sed "s/WORD_FROM/WORD_TO/" file_name > changed.file.name

Upvotes: 1

Andrejs Cainikovs
Andrejs Cainikovs

Reputation: 28434

Use sed or nothing:

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

sed can be download here, for various platforms.

Upvotes: 1

catwalk
catwalk

Reputation: 6476

you can install unxutils and then do

sed "s/WORD_FROM/WORD_TO/" file_name > changed.file.name

to change words or

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

to change characters

Upvotes: 1

V_D_R
V_D_R

Reputation: 250

You can use DOS port of Unix command line utility "tr".

A free DOS port can be found here, one of the ones I like (there are many different ones) are "UXUTL — Comprehensive collection of command line Unix utilities for DOS."

The benefit is that you get a WHOLE BUNCh of incredibly useful commands, not just tr.

Upvotes: 0

Deverill
Deverill

Reputation: 971

You can search for a command line program like GREP you can call from a batch that will take a replace string and a file and do the swap for you.

Upvotes: 0

Related Questions