simple (g)awk code
Ben Horner-Johnson
ben at earth.nwu.edu
Wed Jul 21 18:03:58 EDT 1999
> From: Agustin Lobo <alobo at ija.csic.es>
> Subject: simple (g)awk code
> Is there anybody "fluent" in awk (or gawk)
> who could help me with a simple script?
>
> I just need to read the output of 3
> files produced by r.stat, so like:
>
> 1 val1a val2a val3a
> 2 val1a val2a val3a
> 3 val1a val2a val3a
> ...
>
> ("a" indicates that the values are the ones
> from the first file)
>
> and then make one single file in the form:
>
> 1 val1a val2a val1b val2b val1c val2c val3
> 2 val1a val2a val1b val2b val1c val2c val3
> 3 val1a vala2 val1b valb2 val1c val2c val3
> ...
Sure. With the "paste" command and "(g)awk".
paste puts the columns of each file together on one line:
1 val1a val2a val3a 1 val1b val2b val3b 1 val1c val2c val3c
2 val1a val2a val3a 2 val1b val2b val3b 2 val1c val2c val3c
...
column guide
1 2 3 4 5 6 7 8 9 10 11 12
Use gawk to get the columns you want:
paste file_a file_b file_c | awk '{print $1,$2,$3,$6,$7,$10,$11,$4}' > file_abc
I don't know which val3 you wanted, but the procedure is pretty straightforward.
If the column separators are the same in the files (i.e. tabs) as between the
files (paste defaults to a tab), the utility "cut" can also be used.
paste file_a file_b file_c | cut -f 1,2,3,6,7,10,11,4 > file_abc
Ben Horner-Johnson
ben at earth.nwu.edu
More information about the grass-user
mailing list