1

私はシェルスクリプトに非常に慣れていないので、これはおそらく答えるのが簡単なものです

私は1つのプログラムでいくつかの興味深い遺伝子を特定し、出力はデータファイルinterest.txtです。

Nrg3
Srebf1
Cacna2d3
LOC100759725
LOC100761135
LOC100771217
LOC100769029

これらの名前のMOSTと追加情報を含む別のデータファイル(unique_saml)があります。

Nrg3    neuregulin_3    XM_003503005.1

そのため、結果を取得して、データファイルから残りのデータをgrepできるスクリプトを作成したいと思います。

"#!/bin/sh
for ((  i = 0 ;  i <= 7; i++  ))
do  
cat interest.txt | head -$i | tail -1 | gawk '{print $1}' > tempname

name=`awk '{print $1 }' < tempname`

grep `echo $name` unique_saml >> results.txt
done

i = 4 = LOC100759725ただし、 unique_samlファイルに見つからないため、プログラムは停止し、終了することはありません=grepは空を返します。

これを回避するにはどうすればよいですか?

4

2 に答える 2

0

ファイルを繰り返し処理し、interest.txt利用可能な場合はさらに情報を追加する場合は、次のようにします。

cat interest.txt | while read line
do
   echo -e "$line\t`grep $line unique_saml | awk '{print $2 "\t" $3}'`"
done
于 2013-08-02T12:33:10.200 に答える
0

grepを使用してファイルからパターンを読み取ることができます-f:

$ grep -f interest.txt unique_saml
Nrg3    neuregulin_3    XM_003503005.1

interest.txtの値をの最初の列のみに一致させたい場合unique_saml:

$ sed 's/^/^/' interest.txt | grep -f - unique_saml
Nrg3    neuregulin_3    XM_003503005.1
于 2013-02-01T09:18:47.190 に答える