2011-10-18 14 views
-1

基本的には、染色体番号(chr1、chr2、chr3 ...)に従ってlib1.vhを分割します。 しかしPlzは下記を参照してくださいawkコマンドの2つの変数

... 2つの変数があるコマンド、およびそれが動作しないのawkに思える:

cd /home/xug/scratch/mrfast/NA12891/ 
CHROM_NAME=`head -$c list_chr|tail -1` 

cat lib1.vh|awk '{if ($2==$CHROM_NAME) print}' 

をその後、私は何をすべき? thx

こんにちは: 私はこのようにして動作します!

cat lib1.vh|awk -v src=$CHROM_NAME '{if ($2==src) print}' > lib1_$CHROM_NAME.vh 
+0

をご入力のように見えるんか?あなたの出力はどのように見えますか?なぜ '頭 - $ c'? – sarnold

答えて

1

CHROM_NAMEシェル変数であるが、変数の置換シェル'single quoted strings'得ることはありません。

はおそらく、あなたは意味:

cd /home/xug/scratch/mrfast/NA12891/ 
CHROM_NAME=`head -$c list_chr|tail -1` 

cat lib1.vh|awk "{if (\$2==$CHROM_NAME) print}" 
1

環境変数は、ENVIRON連想配列の要素として表示されます。代わりに:

$CHROM_NAME 

あなたが欲しい:

ENVIRON["CHROM_NAME"] 
+0

私はこれが私の答えよりも好きです。 :) – sarnold

+1

質問は、$ CHROM_NAME環境変数ですか?私はENVIRONの方法がこの場合にはうまくいくとは思わない。 – Kent

+0

良い点:私はWangがスクリプトの前の行で定義された値を使用したかったと仮定した。おそらくそれは正しくないかもしれませんが、その行はCHROM_NAMEという名前の環境変数を作成します。これは、私が記述した方法でアクセスされます。おそらく王はこれを明確にすることができますか? – Max

関連する問題