Estoy tratando de escribir un script bash que tome algunas variables y luego busque/reemplace con una búsqueda de archivos dada usando grep para obtener la lista de archivos que tienen el string. Creo que el problema que estoy teniendo es que las variables se vean en sed. No estoy seguro de qué más podría ser.Script Bash utilizando sed con variables en un ciclo for?
if [ "$searchFiles" != "" -a "$oldString" != "" -a "$newString" != "" ]; then
echo -en "Searching for '$searchFiles' and replacing '$oldString' with '$newString'.\n"
for i in `grep $oldString $searchFiles |cut -d: -f1|uniq`; do
sed -i 's/${oldString}/${newString}/g' $i;
done
echo -en "Done.\n"
else
usage
fi
Usted necesita comillas dobles para la sustitución de variables en bash Creo - 'sed -i "s/$ {} oldString/$ {newString}/g "$ i;' – arunkumar