Afficher un message
Vieux 24/08/2006, 16h08   #2
Bill Marcum
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Sed Find and Replace Multiple Files

On 24 Aug 2006 07:11:52 -0700, pedromalves@gmail.com
<pedromalves@gmail.com> wrote:
> I'm trying to do search/replace on multiple text files.
> I'm using the following script:
>
> #!/bin/sh
> USAGE=`basename $0`
> USAGE=$USAGE' <PATTERN> <SUBSTITUTE> <FILES PATH>'
> if test $# -lt 3
> then
> echo "-I-: $USAGE"
> exit 1
> fi
> PATTERN=$1

PATTERN="$1"
> shift
> SUBSTITUTION=$1

SUBSTITUTION="$1"
> shift
> for i;
> do
> mv $i $i.old;

mv "$i" "$i.old"
> sed -e 's/$PATTERN/$SUBSTITUTION/g' $i.old > $i;
> done
> \rm *.old
>
> What happens is that if I echo the commands out to the shell and
> execute them, the replacement will occur as expect. If I run to script
> to execute the sed command, the resulting output will not have any
> change.
>
> Can someone please me understand this?
>

Variables are not substituted inside single quotes!
sed -e "s/$PATTERN/$SUBSTITUTION/g" $i.old > $i;

  Réponse avec citation
 
Page generated in 0,05460 seconds with 9 queries