4

grep と awk に問題があります。入力ファイルにコードのようなテキストが含まれているためだと思います。

入力ファイルには ID 名が含まれており、次のようになります。

SNORD115-40
MIR432
RNU6-2

参照ファイルは次のようになります。

Ensembl Gene ID HGNC symbol
ENSG00000199537 SNORD115-40
ENSG00000207793 MIR432
ENSG00000266661
ENSG00000243133
ENSG00000207447 RNU6-2

ソース ファイルの ID 名を参照ファイルと照合し、対応する ensg ID 番号を出力して、出力ファイルが次のようになるようにします。

ENSG00000199537 SNORD115-40
ENSG00000207793 MIR432
ENSG00000207447 RNU6-2

私はこのループを試しました:

exec < source.file
while read line
do
grep -w $line reference.file > outputfile
done

また、awkを使用して参照ファイルをいじってみました

awk 'NF == 2 {print $0}' reference file
awk 'NF >2 {print $0}' reference file

しかし、grepさ​​れたIDの1つしか取得できません。

これを行うための提案や簡単な方法は素晴らしいでしょう。

4

3 に答える 3