【发布时间】:2021-03-27 23:48:38
【问题描述】:
我希望能够按频率递减的顺序显示输出。如果两个或多个密码子具有相同的频率,则脚本应使用密码子的字母顺序打破平局。在这个例子中,cag 和 gtt 都只出现一次,但是因为 c 在 g 之前,所以 cag 在上面的 gtt 之前。
当我运行我的脚本时
cat test
aacgtttgtaaccagaactgt
./histogram test
3 aac
1 gtt
2 tgt
1 cag
但相反,我希望能够做到
./histogram test
3 aac
2 tgt
1 cag
1 gtt
我做了什么
declare -a codons=(aac gtt tgt cag)
for items in ${codons[@]}
do
count=$( grep -o $items $1 | sort -k1,1nr -k2,2 | wc -l)
# count=$( grep -o $items $1 | uniq -c | wc -l | sort -k1,1nr -k2,2 )
echo "$count $items "
done
【问题讨论】: