Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Replacing characters in a text file with a batch file

Tags:

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.

like image 717
Jérôme Avatar asked Oct 01 '09 13:10

Jérôme


4 Answers

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.

like image 181
Frank Bollack Avatar answered Nov 16 '22 21:11

Frank Bollack


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

like image 44
catwalk Avatar answered Nov 16 '22 20:11

catwalk


Use sed or nothing:

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

sed can be download here, for various platforms.

like image 1
Andrejs Cainikovs Avatar answered Nov 16 '22 22:11

Andrejs Cainikovs


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
like image 1
enguerran Avatar answered Nov 16 '22 21:11

enguerran