sed - remove nul lines from file

Yuri Pankov yuripv at gmx.com
Tue Nov 7 18:20:49 UTC 2017


On Tue, 7 Nov 2017 13:14:08 -0500, James B  Byrne Via Freebsd-questions 
wrote:
> 
> On Tue, November 7, 2017 13:03, Yuri Pankov wrote:
> 
>>
>> You want /d, not /g, to delete the *lines* which contain NUL symbols
>> (that's what your subject line said).
>>
> 
> Sigh.  Thank you.  That works.  However, it also deletes any line that
> has even one NUL in it regardless of the presence of other non-nul
> characters on the line.
> 
> What I wish to accomplish is to delete only the lines that are
> completely nul.  I thought that this could be accomplished by
> prefacing the match sting with the start of line anchor ^ and ending
> it with the end of line anchor $ but this does not work as I expect.

"[[.NUL.]]" is just a character specified by its collation name, so 
treat as any other ordinary character:

sed -E '/^[[.NUL.]]+$/d' INFILE > OUTFILE

Need extended regexp here for '+' to work.


More information about the freebsd-questions mailing list