【发布时间】:2014-01-23 23:58:51
【问题描述】:
我有数百个文件包含与此类似的行:
>34764998 Halalkalicoccus_jeotgali_B3 -132.6938 Halalkalicoccus 0.528 Halobacteriaceae 0.638 Halobacteriales 0.648 Halobacteria 0.706 Euryarchaeota 0.850
我有兴趣计算第 5 列中小于 0.1、...0.95 的项目数。我编写了一个 bash 脚本,它调用一个 AWK 命令来查看列值,然后将其通过管道传输到 wc -l(见下文)。但是,我的 $、' 和括号排列不正确。谁能告诉我我做错了什么?这可能不是最有效的方法,所以我欢迎提出建议,但我确实想知道我列出的代码做错了什么。
for fileName in 4440319.3_genus.txt 4440372.3_genus.txt 4440373.3_genus.txt 4440378.3_genus.txt 4440379.3_genus.txt 4440380.3_genus.txt 4440381.3_genus.txt
do
echo $fileName
for number in 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.95
do
#NUM={awk '$5 < '$number' {print $5}' $filename | wc -l}
NUM={awk '$5 < $number {print $5}' $filename | wc -l}
#NUM=${awk '$5 < '$number' {print $5}' $filename | wc -l}
#NUM=${awk '$5 < $number {print $5}' $filename | wc -l}
echo $NUM
done
done
exit 0
所有变体都会产生无效的选项错误,具体取决于未注释的行。
非常感谢。
【问题讨论】: