Text-Processing

如何從表中提取行並放入單獨的文件中?

  • December 7, 2019

我有一個有 5 列和多行的表

最後一列是每一行所有值的總和

像那樣:

A       B   C   D   E
gene1   1   3   5   9
gene2   0   0   4   4
gene3   1   0   1   2
gene4   5   5   0   10
gene5   2   0   0   2

我想做的是將gene2和gene5行提取到一個單獨的文件中,並且還有另一個包含其他基因(但沒有提取的基因)的文件,gene1,gene3和gene4

我正在考慮使用該awk命令,但我不明白如何連結行和數字?

使用awk

awk '{
   if ( ($2 == $5 && $3 + $4 == 0) || ($3 == $5 && $2 + $4 == 0) || ($4 == $5 && $2 + $3 == 0) ) {
       print $0 > "match-file"
   } else if ($2 + $3 + $4 == $5) { 
       print $0 > "nomatch-file"
   }
}' input

一個(非常相似的)替代方案:

awk '{
   if ( $2 == $5 || $3 == $5|| $4 == $5 ) {
       print $0 > "match-file"
   } else if ($2 + $3 + $4 == $5) { 
       print $0 > "nomatch-file"
   }
}' input

引用自:https://unix.stackexchange.com/questions/555976