Hi,

the manual page of grep mentioned the following:

      -Z, --null
              Output  a  zero byte (the ASCII NUL character) instead of the 
character that normally follows a file name.  For example, grep -lZ outputs a 
zero byte
              after each file name instead of the usual newline.  This option 
makes the output unambiguous, even in the presence of file names  containing  
unusual
              characters  like  newlines.  This option can be used with 
commands like find -print0, perl -0, sort -z, and xargs -0 to process arbitrary 
file names,
              even those that contain newline characters.

for me (as a non-native English speak ;) ) this means:

Replace a newlie after a filename with a zero-byte.

So when doing

    find /tmp | grep -Z tmp | xargs -0 md5sum

it should work comparable to

    find /tmp -print0 | xargs -0 md5sum

but for me it does not.

If my logic is not complete nonsense I dont understand the second 
part of the text of the manual page:


              This option can be used with commands like find -print0, perl -0, 
sort -z, and xargs -0 to process arbitrary file names,
              even those that contain newline characters.


If I would do


    find /tmp -print0 | grep -Z tmp | xargs -0 md5sum

there are no newlines which could be printed "instead of the character that 
normally follows a file name. For example, grep -lZ outputs a zero byte
after each file name instead of the usual newline. "....

At this point confusion fills my head and nonsense follows my commands
on the command line.

What does that all mean?

Thank you very much for any help and de-confusion in advance! :)

Best regards,
mcc


Reply via email to