From owner-freebsd-questions@FreeBSD.ORG Sat Dec 19 21:59:16 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 84221106566B; Sat, 19 Dec 2009 21:59:16 +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 409458FC12; Sat, 19 Dec 2009 21:59:15 +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 1NM7KP-0003gx-NJ; Sat, 19 Dec 2009 21:59:12 +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 1NM7KO-000681-HU; Sat, 19 Dec 2009 21:59:08 +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 nBJLx8gh010389; Sat, 19 Dec 2009 21:59:08 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 nBJLx7AE010388; Sat, 19 Dec 2009 21:59:07 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: Sat, 19 Dec 2009 21:59:07 +0000 From: Anton Shterenlikht To: Warren Block Message-ID: <20091219215907.GA10349@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: Sat, 19 Dec 2009 21:59:16 -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 yes, quite. On 1.5GHz ia64, on 1GB binary file tail takes about 25 s, but dd.. I killed after 25 min (!) and it had only done 1/3 of the file. But even tail is too slow. So I'll probably have to write a C I/O routine and avoid fortran I/O alltogether, so I write straight away just my data. many thanks anton -- 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