in reply to Re: get value from a awk system command
in thread get value from a awk system command

Hi,

thank you for your help, I tried your sugestion but @rows still empty... :(

the delimiter is ; and I've check that.

I´ve also tried the command perl:

perl -a -F/;/ -ne  "print if $F[2]==1" file.csv

and it also dont work.

:(

Replies are listed 'Best First'.
Re^3: get value from a awk system command
by Anonymous Monk on Apr 10, 2013 at 17:49 UTC

    When you post a message like this, do NOT say "it doesn't work". Instead, show what you tried, what you got, and what you wanted. Use copy/paste rather than typing from memory.

    eg:

    I tried the code

    use warnings; use strict; print "$0";
    the results I got were just
    test.pl
    But I was hoping to get something more like "perl test.pl" printed out.

Re^3: get value from a awk system command
by hippo (Archbishop) on Apr 12, 2013 at 11:05 UTC

    Actually, it does work. Here's the source data in file.csv:

    a;b;1;foo j;k;2;dog m;n;3;cat y;z;1;bar

    And here's the script, which I have called at.pl:

    #!/usr/bin/perl -w use strict; use warnings; my @rows = `awk -F';' '\$3==1' file.csv`; my $lines= join('', @rows ); print "string: $lines"; exit;

    and here's the output from running ./at.pl:

    $ ./at.pl string: a;b;1;foo y;z;1;bar $

    awk is gawk 4.0.0, perl is 5.14.2. I still don't recommend doing it this way for reasons of efficiency and external dependency but it does give the right output.