我遇到了grep和awk的問題。我認爲這是因爲我的輸入文件包含看起來像代碼的文本。使用grep或awk匹配文本
的輸入文件中包含的ID名稱,看起來像這樣:
SNORD115-40
MIR432
RNU6-2
參考文件看起來是這樣的:
Ensembl Gene ID HGNC symbol
ENSG00000199537 SNORD115-40
ENSG00000207793 MIR432
ENSG00000266661
ENSG00000243133
ENSG00000207447 RNU6-2
我想從我的源文件中的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'd ID之一。
任何建議或更簡單的方法,這樣做會很好。
這會產生誤報即'輸入文件SNORD115-40'也將匹配'SNORD115-401'的參考等。 – 2013-05-09 09:15:00
@sudo_O好點,謝謝 – 2013-05-09 09:22:13
我們可以使用「fgrep -wf source.file reference.file」來避免誤報。 – 2013-05-09 09:30:03