如何根据列过滤管道数据?

时间:2012-06-21 13:23:35

标签: bash unix grep 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

现在,我想取第6列(cut -f 6及更高版本的代码)只有那些与第13列中某些grep匹配的行。

这些:

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

因此,我查看第13列,如果grep匹配,那么我将使用此行并生成其余代码 - 计算第6列中的数字总和。

拜托,我该怎么办?感谢。

1 个答案:

答案 0 :(得分:1)

创建一个grep命令,它将采用未切割的行并按第13个字段过滤,如

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

然后将其传递给cut -f 6,依此类推。