1

ファイルのフォーマットに問題があります。列 2 と列 3 から値を減算したいのですが、結果が 0 の場合、行を削除してファイルを別の出力ファイルに保存したいと考えています。

入力ファイルは次のとおりです。

chr9    139844640       139844640       18450
chr9    139888759       139888925       18451
chr9    139965116       139965298       18453
chr9    139981357       139981444       18454

出力ファイル:

chr9    139888759       139888925       18451
chr9    139965116       139965298       18453
chr9    139981357       139981444       18454

その瞬間、私は非常に長く曲がりくねった方法でそれをやっています:

awk 'NR == 1 { $4 = "diff." } NR >= 0 { $4 = $2 - $3 } 1' input.bed > input_B.bed

次に、コマンド ラインで grep を実行します。

grep -wn 0 input_B.bed

viの行を削除します。

簡単/迅速な方法の提案は素晴らしいでしょう!

4

1 に答える 1

4

単純な:

awk '$2 - $3' infile >outfile

にはデフォルトの印刷アクションがあるためです。したがって、0( true) とは異なる結果がトリガーされます。

次の結果が得られます。

chr9    139888759       139888925       18451
chr9    139965116       139965298       18453
chr9    139981357       139981444       18454
于 2013-08-22T09:39:04.120 に答える