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つしか取得できません。
これを行うための提案や簡単な方法は素晴らしいでしょう。