From owner-freebsd-questions@FreeBSD.ORG Fri Feb 6 23:00:19 2009 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0738F1065675 for ; Fri, 6 Feb 2009 23:00:19 +0000 (UTC) (envelope-from amvandemore@gmail.com) Received: from imedmobility.com (host-50.216-16-29.iw.net [216.16.29.50]) by mx1.freebsd.org (Postfix) with ESMTP id 712708FC19 for ; Fri, 6 Feb 2009 23:00:08 +0000 (UTC) (envelope-from amvandemore@gmail.com) Received: from midco.net (host-47-73-107-208.midco.net [208.107.73.47]) by imedmobility.com (Postfix) with ESMTP id E628B1173C4F; Fri, 6 Feb 2009 17:00:07 -0600 (CST) Message-ID: <498CC0FC.1040706@gmail.com> Date: Fri, 06 Feb 2009 23:00:12 +0000 From: Adam Vande More User-Agent: Thunderbird 2.0.0.18 (X11/20081225) MIME-Version: 1.0 To: Dan Nelson References: <498CBEBE.7080702@gmail.com> <20090206225619.GA75180@dan.emsphone.com> In-Reply-To: <20090206225619.GA75180@dan.emsphone.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-questions@freebsd.org Subject: Re: insert new line in files 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, 06 Feb 2009 23:00:20 -0000 Dan Nelson wrote: > In the last episode (Feb 06), Adam Vande More said: > >> I want to insert a new line of text at a certain position in certain files >> recursively under a directory. More specifically, I want text like this: >> >> include('/usr/home/www/imp-sites/default_inventory.php'); >> >> to be put into file X at line 37 where file X appears in ./subdir1, >> .subdir2 etc. There are many subdirs or I'd just do it by hand. >> >> I've done stuff like this before with the rpl script and it works well as >> long as there aren't any special characters in the strings. So I assumed >> I finally hit the point where I'm forced to learn something like sed or >> awk and tried some examples with sed but I can't figure out what I'm doing >> wrong. >> >> I get results like this: >> >> sed '5i\test' test.txt >> sed: 1: "5i\test": extra characters after \ at the end of i command >> > > You want: > > sed -e '5i\ > test' test.txt > > i.e. a linebreak after the backslash. > > I had actually tried that too: > sed -e '5i\ ? test' text.txt sed: 1: "5i test ": command i expects \ followed by text