coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [coreutils] [PATCH] head: optionally indicate underrun of set limit


From: Pádraig Brady
Subject: Re: [coreutils] [PATCH] head: optionally indicate underrun of set limit
Date: Wed, 24 Nov 2010 16:34:59 +0000
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.8) Gecko/20100227 Thunderbird/3.0.3

On 23/11/10 16:34, Pádraig Brady wrote:
> On 23/11/10 16:24, Stefan Tomanek wrote:
>> Dies schrieb Stefan Tomanek (address@hidden):
>>
>>> It is often convinient to detect whether head has in fact printed the
>>> requested number of lines or if EOF was reached before reaching that
>>> point. This patch adds the option --indicate-underrun, which makes
>>> "head" exit with a status of 4 instead of 0 if no more data could be
>>> read from its input.
>>
>> Any thoughts about this change? It's a rather small patch, but would
>> be quite useful (at least for me).
>>
>>
> 
> This does seem useful on the face of it.
> I need to do a little further investigation
> to see if there are existing ways to achieve the same.

I was wondering about the logic in your example BTW.
If there is no input then you'll process an empty chunk
or if the input is an exact multiple of the chunk size
you'll process an empty chunk at the end.

The following addresses both issues and
also uses existing coreutils functionality:

process_part() { echo processing $(wc -c) bytes; }
while true; do
  c=$(od -tx1 -An -N1)
  test "$c" || break
  c=$(echo $c) #strip leading ' '
  { printf "\x$c"; head -c9; } | process_part
done

cheers,
Pádraig.

p.s. \x is not a printf standard so the
script probably needs tweaking for dash

p.p.s. I noticed the related ifne util from moreutils



reply via email to

[Prev in Thread] Current Thread [Next in Thread]