From owner-freebsd-questions@FreeBSD.ORG Fri Dec 18 16:56:38 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 AAEDC106568D for ; Fri, 18 Dec 2009 16:56:38 +0000 (UTC) (envelope-from mexas@bristol.ac.uk) Received: from dirg.bris.ac.uk (dirg.bris.ac.uk [137.222.10.102]) by mx1.freebsd.org (Postfix) with ESMTP id 68CA88FC17 for ; Fri, 18 Dec 2009 16:56:38 +0000 (UTC) Received: from seis.bris.ac.uk ([137.222.10.93]) by dirg.bris.ac.uk with esmtp (Exim 4.69) (envelope-from ) id 1NLg7w-00037u-Nn; Fri, 18 Dec 2009 16:56:36 +0000 Received: from mech-cluster241.men.bris.ac.uk ([137.222.187.241]) by seis.bris.ac.uk with esmtp (Exim 4.67) (envelope-from ) id 1NLg7w-0000iC-1j; Fri, 18 Dec 2009 16:56:28 +0000 Received: from mech-cluster241.men.bris.ac.uk (localhost [127.0.0.1]) by mech-cluster241.men.bris.ac.uk (8.14.3/8.14.3) with ESMTP id nBIGuRxR018018; Fri, 18 Dec 2009 16:56:27 GMT (envelope-from mexas@bristol.ac.uk) Received: (from mexas@localhost) by mech-cluster241.men.bris.ac.uk (8.14.3/8.14.3/Submit) id nBIGuRQC018017; Fri, 18 Dec 2009 16:56:27 GMT (envelope-from mexas@bristol.ac.uk) X-Authentication-Warning: mech-cluster241.men.bris.ac.uk: mexas set sender to mexas@bristol.ac.uk using -f Date: Fri, 18 Dec 2009 16:56:27 +0000 From: Anton Shterenlikht To: Warren Block Message-ID: <20091218165627.GB89667@mech-cluster241.men.bris.ac.uk> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Spam-Score: -1.5 X-Spam-Level: - Cc: glarkin@freebsd.org, mexas@bristol.ac.uk, perryh@pluto.rain.com, freebsd-questions@freebsd.org Subject: Re: editing a binary file 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, 18 Dec 2009 16:56:38 -0000 On Fri, Dec 18, 2009 at 09:33:49AM -0700, Warren Block wrote: > perryh@pluto.rain.com wrote: > > Greg Larkin wrote: > > > ... > > > > truncate -4 myfile should get rid of the last four bytes. Maybe > > > > there's a similar efficient way to truncate the start of a file. > > > > > > This should do it: > > > > > > dd if=oldfile of=newfile bs=1 skip=4 > > > > Or, perhaps marginally more efficient: > > > > dd if=oldfile of=newfile bs=4 skip=1 > > It would be nice to avoid the file copy, but maybe there's no way to do > that. The small buffer size for dd will probably make copies of > multi-gig files slow. This might be faster: > > tail -c +5 myfile > outfile > truncate -4 outfile > > (Has anyone mentioned that you can edit binary files interactively with > vi yet? No? Well, it's horrific and surely has interesting failure > modes. And there are probably disadvantages also.) Vim, yes. I tried, but failed. At the moment dd/truncate combination seems the most appealing. But I'll look at C/perl/python proposed solutions as well. many thanks -- Anton Shterenlikht Room 2.6, Queen's Building Mech Eng Dept Bristol University University Walk, Bristol BS8 1TR, UK Tel: +44 (0)117 331 5944 Fax: +44 (0)117 929 4423