From owner-freebsd-questions@FreeBSD.ORG Sun Jun 27 14:08:42 2004 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B4AA616A4CE for ; Sun, 27 Jun 2004 14:08:42 +0000 (GMT) Received: from mtaw6.prodigy.net (mtaw6.prodigy.net [64.164.98.56]) by mx1.FreeBSD.org (Postfix) with ESMTP id 70D4543D49 for ; Sun, 27 Jun 2004 14:08:42 +0000 (GMT) (envelope-from antennex@swbell.net) Received: from SAGEAME (adsl-65-68-247-73.dsl.crchtx.swbell.net [65.68.247.73]) by mtaw6.prodigy.net (8.12.10/8.12.10) with SMTP id i5RE6xdH003624; Sun, 27 Jun 2004 07:07:00 -0700 (PDT) Message-ID: <00f601c45c50$3e268f30$0200000a@SAGEAME> From: "antenneX" To: "Malcolm Kay" , "Giorgos Keramidas" References: <00ce01c45ba0$343ffc00$0200000a@SAGEAME><20040626184008.GB1016@gothmog.gr> <00da01c45bcb$b1381d70$0200000a@SAGEAME> <200406271305.21121.malcolm.kay@internode.on.net> Date: Sun, 27 Jun 2004 09:08:31 -0500 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 cc: freebsd-questions@freebsd.org Subject: Re: A SED script X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: antenneX List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Jun 2004 14:08:42 -0000 ----- Original Message ----- From: "Malcolm Kay" To: "antenneX" ; "Giorgos Keramidas" Cc: 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" > > To: "antenneX" > > Cc: > > Sent: Saturday, June 26, 2004 1:40 PM > > Subject: Re: A SED script > > > > > On 2004-06-26 12:08, antenneX 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.