Две переменные в командах awk - PullRequest
0 голосов
/ 19 октября 2011

В основном я хочу разделить lib1.vh по номеру хромосомы (chr1, chr2, chr3 ...).Но, похоже, в командах 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

Ответы [ 2 ]

1 голос
/ 19 октября 2011

CHROM_NAME является переменной shell , но '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 голос
/ 19 октября 2011

Переменные среды отображаются как элементы ассоциативного массива ENVIRON. Вместо:

$CHROM_NAME

Вы хотите:

ENVIRON["CHROM_NAME"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...