----- Original Message ----- From: "Malcolm Kay" <[EMAIL PROTECTED]> To: "antenneX" <[EMAIL PROTECTED]>; "Giorgos Keramidas" <[EMAIL PROTECTED]> Cc: <[EMAIL PROTECTED]> Sent: Saturday, June 26, 2004 10:35 PM Subject: Re: A SED script
> On Sunday 27 June 2004 07:49, antenneX wrote: > > ----- Original Message ----- > > From: "Giorgos Keramidas" <[EMAIL PROTECTED]> > > To: "antenneX" <[EMAIL PROTECTED]> > > Cc: <[EMAIL PROTECTED]> > > Sent: Saturday, June 26, 2004 1:40 PM > > Subject: Re: A SED script > > > > > On 2004-06-26 12:08, antenneX <[EMAIL PROTECTED]> wrote: > > > > I cannot get it to work on another file (perl.pl file) to change the > > > > line: > > > > $OrderNumPrefix = "ATX060"; to $OrderNumPrefix = "ATX070"; > > > > > > > > I suspect I'm not handling the quotes or other operators correctly > > > > and it > > > > > > just ignores the change. > > > > > > > > Here's the snippet of the script I'm trying to use: > > > > #!/bin/sh > > > > new=`grep -i new /path/to/newfile` > > > > old=`grep -i new /path/to/oldfile` > > It would seem that the variables new and old will both be set to something > containing 'new' (perhaps not in lower case). > How does this relate to "ATX060" and "ATX070"? > > > > > sed -i.bak -e "s/$old/$new/" /path/to/myfile > > > > > > The results depend heavily on the existence and contents of the two > > > > files > > > > > named /path/to/{old,new}file. I'm sure if you change the sed line to: > > > > > > sed -i.bak -e 's/ATX060/ATX070/' /path/to/myfile > > > > > > it will all work fine. > > > > Indeed, this works fine. The old/new files are needed to set the > > varibles to hold the new number for the next time as this is run via > > cron. > > > > You've still not shown us the relevant lines of /path/to/newfile or > /path/to/oldfile > > > old = ATX060 > > new = ATX070 > > What are these? The contents of /path/to/{new,old}file? > If so sed will be looking to change the string "old = ATX060" to > "new = ATX070". > > Or do the files simply consist of > ATX060 > and > ATX070 > ? > If so then grep is not the right command to load the variables old and new. > Try: > new=`cat /path/to/newfile` > old=`cat /path/to/oldfile` > > Malcolm > I've solved the script ptoblem with a verbose run of the script & it told me exactly what was wrong -- the two varibles newfile & oldfile were not defined properly. Running this showed the error: /bin/sh -xv ./myscript Sorry I didn't think to do this in the first place. _______________________________________________ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"