awk
では、$10
= reference standard
と$3
の値が一致する行を印刷しようとしています。私の実際のデータは数千のtab-delimited
行なので、入力と出力の両方がtab-delimited
に設定されています。ありがとうございました :)。awkは一致し、特定の値をフィールド内に表示します
awkの
awk -F'\t' -v OFS='\t' 'FNR==NR{a[$0];next} $(NF-1)$NF=="referencestandard" && {A[$3];next}$3 in A in a{print}' file
awk: cmd. line:1: FNR==NR{a[$0];next} $(NF-1)$NF=="referencestandard" && {A[$3];next}$3 in A in a{print}
awk: cmd. line:1: ^syntax error
ファイル
#tax_id GeneID Symbol RSG LRG RNA t Protein p Category
9606 4200 ME2 NG_016198.1 NM_002396.4 NP_002387.1 reference standard
9606 2122 MECOM NG_028279.1 NM_004991.3 NP_004982.2 reference standard
9606 4204 MECP2 NG_007107.2 NM_004992.3 NP_004983.1 reference standard
9606 4204 MECP2 NG_007107.2 NM_001110792.1 NP_001104262.1 reference standard
000わずか数行のために所望の出力
9606 4204 MECP2 NG_007107.2 NM_004992.3 NP_004983.1 reference standard
9606 4204 MECP2 NG_007107.2 NM_001110792.1 NP_001104262.1 reference standard
'&'の前に '{'?また、フィールドには '$ 1'から' $ NF'まで番号が付けられます。 '$ 0'は行全体です。表示されたデータから判断すると、 '参照'と '標準'の間にタブはありません。 'FNR == NR'の条件は、ファイルが読み込まれ、保存されたことを意味します。読み取るべき第2のファイルがないので、以下の用語は決して実行されない。あなたは 'END'ブロックでそれを行うことができます。あなたと '$ 3'の値が一致することが何を意味するのかは明確ではありません - 彼らは何を一致させる必要がありますか?あなたが探しているものを明確にする必要があります。要件が完全に記述されたら、これを行うのは難しくありません。 –
'$ 3 'の値が一致するということは、それらが同じであることを意味します。 '$ 3 'の値は数回繰り返すことができますが、通常は'参照標準 'という値が1つしかありません。私はその基準を満たしていないファイルを指差すようにしています...それは '$ 3'値が同じで' $ 10'が '参照標準'です。ありがとうございました :)。 – Chris
より正確にする必要があります。あなたは '$ 3'で同じ値を持つ2つの異なる行を意味しますか?他の分野の何があっても関係なく?そして、両方の行が印刷されますか? $ 3に同じ値を持つ3行がある場合は、3行または3ペアを印刷しますか?あなたのサンプルデータでは、 '$ 3'の繰り返しも' $ 1'と '$ 2'(と' $ 4')の値を繰り返します - それは重要ですか? –