From owner-freebsd-questions@FreeBSD.ORG Fri Jun 15 11:06:01 2007 Return-Path: X-Original-To: freebsd-questions@freebsd.org Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 44C1116A41F for ; Fri, 15 Jun 2007 11:06:01 +0000 (UTC) (envelope-from nvass@teledomenet.gr) Received: from wmail.teledomenet.gr (wmail.teledomenet.gr [213.142.128.16]) by mx1.freebsd.org (Postfix) with ESMTP id 03CA113C4BD for ; Fri, 15 Jun 2007 11:06:00 +0000 (UTC) (envelope-from nvass@teledomenet.gr) Received: from iris (unknown [192.168.1.71]) by wmail.teledomenet.gr (Postfix) with ESMTP id 63CBC1C8A33; Fri, 15 Jun 2007 14:05:13 +0300 (EEST) From: Nikos Vassiliadis To: freebsd-questions@freebsd.org Date: Fri, 15 Jun 2007 14:04:46 +0300 User-Agent: KMail/1.9.1 References: <467269EE.6090001@oregnier.net> In-Reply-To: <467269EE.6090001@oregnier.net> X-NCC-RegID: gr.telehouse MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200706151404.47348.nvass@teledomenet.gr> Cc: Olivier Regnier Subject: Re: problem with sed command and csh X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jun 2007 11:06:01 -0000 On Friday 15 June 2007 13:29, Olivier Regnier wrote: > Hi everybody, > > Actually, i'm working on FreeBSD 6.2 and csh shell. With a sh script, i > trying to execute this command : > sed -e "s/MAKE_ARGS\([^{]*\){/MAKE_ARGS\1{\n\t'mail/nbsmtp' => > 'WITH_IPV6=1 WITH_SSL=1',/" > /usr/local/etc/pkgtools.conf > > The result is not correct, i have an error : > sed: 1: "s/MAKE_ARGS\([^{]*\){/M . . .": bad flag in subsitute command: > 'n' > > Can you help me please ? s/MAKE_ARGS\([^{]*\){/MAKE_ARGS\1{\n\t'mail/nbsmtp' => This n is invalid--------------------------^^^ You should add a backslash before each slash that is not used as a separator for the s command. E.g. s/I want to substitute the \/ character/with the _ character/ s/\/\/\//three slashes/ You can also use a separator of choice for the s command. That is: s/foo/bar/ is equivalent to s@foo@bar@ is equivalent to sAfooAbarA is equivalent to s1foo1bar1. keep in mind, that our sed might not be totally compatible with GNU sed. HTH, Nikos