PDA

Visualizza la versione completa : find+replace regexp recursivo


UNIX-based
26-10-2007, 16:53
ciao a tutti,
avrei bisogno di uno script bash che, recursivamente, cerchi e sostituisca pattern regexp nei files.
...del tipo:
./recursive_find_replace <regexp_to_search> <regexp_to_replace>

ho trovato in giro alcune righe ma non sono riuscito ad ottenere niente di perfettamente funzionante...

avete suggerimenti?
qualcosa sulla base di sed ovviamente... sed s/<regexp_to_search>/<regexp_to_replace>/g *
grazie!

UNIX-based
26-10-2007, 17:30
che ne dite di questo?


#!/bin/bash

if [ -z $1 ] || [ -z $2 ]
then
echo 'no parameters given'
else
tmpfile=temp_file_with_unique_name_$$
for file in `grep -lR $1 *` ; do
mv $file $tmpfile
sed -e 's/'"$1"'/'"$2"'/g' $tmpfile > $file
done
rm $tmpfile
fi

possibili migliorie?

Loading