http://www.perlmonks.org?node_id=538351


in reply to Re: dynamic zcat and grep
in thread dynamic zcat and grep

Thanks for the reply. I'm using - perl, v5.8.7 built for i686-linux Red Hat Enterprise zcat works for me when I enter it via the command line, not when it is in a perl script. gunzip -c gives the same errors. When I use single quotes:
gunzip: compressed data not read from a terminal. Use -f to force deco +mpression. For help, type: gunzip -h
When I use double quotes:
ERROR - Could not open log.gz

Replies are listed 'Best First'.
Re^3: dynamic zcat and grep
by jasonk (Parson) on Mar 22, 2006 at 00:39 UTC

    Since you are on a Red Hat machine anyway, you can save yourself a lot of time just by using 'zgrep'.


    We're not surrounded, we're in a target-rich environment!
      Thanks for the reply. zgrep works great on the command line, but how do I get it to work within my script? Could I do the following: (I would try it but don't have access to the system right now)
      $grep = /something/; $gzfile = file.gz; open OUTPUT "zgrep $grep $gzfile |";
Re^3: dynamic zcat and grep
by johngg (Canon) on Mar 22, 2006 at 10:50 UTC
    You may be able to get a better idea of what is going wrong if you include $! in your error message. This is the variable in which Perl stores the O/S error message when things like open fail, e.g.

    $fn = "non_existant_file"; open IN, "<$fn" or die "open: $fn: $!\n";

    would error with

    open: non_existant_file: no such file or directory

    Cheers,

    JohnGG