我正在尝试使用for循环基于两个变量进行查询...使用以下命令
for i in $(< enhancer.list)
do for j in $(< bp.list)
do
awk ' BEGIN {FS=OFS="\t"};
{if ($1=="chr2" && $7<= $j && $8>= $j ) {print $0}}' $i.txt > $i.result.$j.txt
done;
done;
其中&#34; enhancer.list&#34;是文件名;和&#34; bp.list&#34;是一个将在来自enhancer.list的文件中查找的数字列表。
我无法检索与awk查询匹配的任何行。是否有可能$ j不在括号内()请提出任何建议。
由于
答案 0 :(得分:0)
使用j
选项将awk
分配给-v
变量。
awk -v j=$j '
BEGIN {FS=OFS="\t"};
$1 == "chr2" && $7 <= $j && $8 >= j' $i.txt > $i.result.$j.txt
我遗漏了{print $0}
,因为当条件为真时,这是默认操作。