Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Dec 2009 20:45:02 -0500
From:      Greg Larkin <glarkin@FreeBSD.org>
To:        Warren Block <wblock@wonkity.com>
Cc:        Anton Shterenlikht <mexas@bristol.ac.uk>, freebsd-questions@freebsd.org
Subject:   Re: editing a binary file
Message-ID:  <4B2ADE9E.6080707@FreeBSD.org>
In-Reply-To: <alpine.BSF.2.00.0912171820130.53881@wonkity.com>
References:  <20091218005102.GA51064@mech-cluster241.men.bris.ac.uk> <alpine.BSF.2.00.0912171820130.53881@wonkity.com>

next in thread | previous in thread | raw e-mail | index | archive | help
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Warren Block wrote:
> On Fri, 18 Dec 2009, Anton Shterenlikht wrote:
> 
>> I'm creating binary files in fortran.
>> Fortran adds 4 byte record delimiters at the beginning
>> and the end of each record, which, in the case of a binary
>> file, is just at the beginning and at the end of the file.
>> I need to delete these record delimiters, because the
>> software I use to visualise the binary files interprets
>> them as data. But I don't know how. I've looked at
>> hexdump and od, but those are only dumping (I think)
>> file contents, and I cannot see how to edit a file with them.
> 
> 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.
> 
> -Warren Block * Rapid City, South Dakota USA

This should do it:

dd if=oldfile of=newfile bs=1 skip=4

Hope that helps,
Greg
- --
Greg Larkin

http://www.FreeBSD.org/           - The Power To Serve
http://www.sourcehosting.net/     - Ready. Set. Code.
http://twitter.com/sourcehosting/ - Follow me, follow you
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iD8DBQFLKt6e0sRouByUApARAt0uAJ9CfG3DmsUbrUMg7hX2dIT+FOZ1sACfQtaD
b7z5vvm/+vohelNIch1/ME8=
=Zp5i
-----END PGP SIGNATURE-----




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4B2ADE9E.6080707>