awk 命令中的两个变量

发布于 2024-12-10 12:45:31 字数 396 浏览 0 评论 0原文

基本上我想根据染色体编号(chr1,chr2,chr3 ...)拆分lib1.vh。 但似乎在 awk 命令中有两个变量,并且它不起作用..

请参见下文:

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

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

那我该怎么办?谢谢

大家好: 我就是这样做的,而且有效!

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

Basically I want to split lib1.vh according to the chromosome number (chr1, chr2,chr3...).
But seems in the awk commands there are two variables, and it doesn't work..

Plz see below:

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

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

Then what should I do? thx

Hi guys:
I do this way, and it works!

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一梦等七年七年为一梦 2024-12-17 12:45:31

CHROM_NAME 是一个 shell 变量,但 '单引号字符串' 不会得到 shell 变量替换。

也许你的意思是:

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

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

CHROM_NAME is a shell variable, but 'single quoted strings' do not get shell variable replacement.

Perhaps you meant:

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

cat lib1.vh|awk "{if (\$2==$CHROM_NAME) print}"
暗恋未遂 2024-12-17 12:45:31

环境变量显示为 ENVIRON 关联数组的元素。而不是:

$CHROM_NAME

你想要:

ENVIRON["CHROM_NAME"]

Environment variables appear as elements of the ENVIRON associative array. Instead of:

$CHROM_NAME

you want:

ENVIRON["CHROM_NAME"]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文