我有以下两个代码:
nut=`awk "/$1/{getline; print}" ids_lengths.txt`
和
grep -v '#' neco.txt |
grep -v 'seq-name' |
grep -E '(\S+\s+){13}\bAC(.)+CA\b' |
awk '$6 >= 49 { print }' |
awk '$6 <= 180 { print }' |
awk '$4 > 1 { print }' |
awk '$5 < $nut { print }' |
wc -l
我希望我的脚本在这个地方替换“nut”:
awk '$4 < $nut { print }'
从这里返回的数字:
nut=`awk "/$1/{getline; print}" ids_lengths.txt`
但是,上面代码中的 $1 不应代表 ids_lengths.txt 中的列,而是 neco.txt 中的第一列!(类似于我在主代码中使用 $6 和 $4)。
如何解决这些嵌套 awks 的帮助肯定会受到赞赏:-)
编辑:我的输入文件(neco.txt)的行如下所示:
FZWTUY402JKYFZ 2 100.000 3 11 9 4.500 7 0 0 0 . TG TGTGTGTGT
最大的问题是,在使用第一列(例如 FZWTUY402JKYFZ)进行搜索时,我想过滤那些在第五列中编号小于编号的行,这些行是我从另一个文件(ids_lengths.txt)中获得的。这就是为什么我在我的草稿脚本中放入“nut”变量的原因 :-)
ids_lengths.txt 看起来像这样:
>FZWTUY402JKYFZ
153
>FZWTUY402JXI9S
42
>FZWTUY402JMZO4
158