My script to replace strings in ASCII files

lars lars at gmx.at
Wed Jan 11 12:40:40 PST 2006


Kristian Vaaf wrote:
> Hello!
> 
> Just curious, what do I need to do to be able to execute this script like:
> 
> $ text-replace old_string new_string
> 
> I find it a bit inconvenient having to edit the script for every thing I need to replace.
> 
> Thanks,
> Kristian
> 
> #!/usr/local/bin/bash
> #
> #   Replace old with new inside all text files.
> #   $URBAN: text-replace.sh,v 1.0 2005/10/24 15:09:05 vaaf Exp $
> #
> 
> for file in `find . -type f ! -name ".*"`; do
> 
> 	if [ "`file -b "$file" | grep text`" != "" ]; then
> 
> 		sed -i '' "s/old/new/g" "$file"
> 
> 		echo "$file: Done"
> 
> 	fi
> 
> done
Why not open the file with vim and then
:.,$s/old/new/

Of course that's not scriptable...

Maybe you should interpolate the first and the second argument
into your regexes in the substitution with sed,
so you get "s/argument1/argument2/"

Perl might help though.


More information about the freebsd-questions mailing list