[X-Unix] Remove last ten lines of files

Xavier Noria fxn at hashref.com
Fri Jan 9 00:37:35 PST 2004


On Jan 9, 2004, at 6:45 AM, David Ledger wrote:

>> From: Eugene Lee <list-themacintoshguy at fsck.net>
>> On Wed, Jan 07, 2004 at 08:48:30AM +0100, Kuestner, Bjoern wrote:
>> :
>> : > echo '1,$-10p;q' | tr ";" "\n" | ed YOURFILE
>> :
>> : The mystery deepens. (c:
>> :
>> : I kinda feel like my wife right now when she looks at my screen and
>> : thinks I am doing total magic.
>>
>> Or shorten the command to:
>>
>> 	echo $'1,$-10p\nq' | ed YOURFILE
>
> Unfortunately, this is shell dependent.  Some shells put out backslash 
> n for single quoted '\n'.  Works in Apple's bash and ksh built for 
> OSX.  ksh doesn't need the leading '$'.

What's the leading $ for?

BTW, this is a portable Perl one-liner that does not depend on trailing 
newlines, and does not slurp the file (it has at most ten lines in 
memory). I expect it to be slower though:

     $ perl -ne 'push @x, $_; print shift @x if @x > 10'

-- fxn



More information about the X-Unix mailing list