Perlnika
Perlnika

Reputation: 5066

How to filter pipeline data according to column?

I wrote the following pipeline:

for i in `ls c*.txt | sort -V`; do echo $i; grep -v '#' ${i%???}_c_new.txt | grep -v 'seq-name' | cut -f 6 | grep -o '[0-9]*' | awk '{s+=$1} END {print s}'; done

Now, I want to take 6th column (cut -f 6 and later code) of only those lines, which match certain grep in 13th column.

These:

cut -f 13 | grep -o '^A$'

So that I look at 13th column and if grep matches, then I take this line and make rest of the code - counting sum of numbers in 6th column.

Please, how can I do such a thing? Thanks.

Upvotes: 1

Views: 351

Answers (1)

Lev Levitsky
Lev Levitsky

Reputation: 65831

Make a grep command that will take uncut lines and filter by 13th field, like

 grep -E '(\S+\s+){12}A\s'

and then pipe it to cut -f 6 and so on.

Upvotes: 1

Related Questions