<分区>
当我运行这个脚本时,我收到一条错误消息:“排序:写入失败:标准输出:破损的管道”
如果有人能帮助我,那就太棒了,我被这个错误弄疯了
输入文件是一个文件列表,所有文件都包含 FASTA 格式的 DNA 序列,因此每个文件都有几个序列(每个序列在一行中),格式为: 在 $1(标识符)中 在 $2,3,4,5,6,7&8(更多值)中 在 $9(DNA 序列)中
然后我想通过每个文件中的序列数($common_hits)选择每个序列(这个数字不是固定值,但我为示例设置了 6) - 必须删除所有少于 6 个序列的文件 -6个序列的文件都可以 -超过6个序列的文件必须减少到6个序列(这些序列由字段$5的较高值选择)
输出文件必须包含所有 6 个序列,并且序列(字段 $9)必须位于标识符之后的行中
我现在不会删除超过 6 个序列的原始文件,因为我想确保它有效
par_list=`ls -1 *BR`
common_hits="6"
for i in ${par_list}
do
if [ "`cat ${i} | wc -l`" -lt "${common_hits}" ]
then
rm -f ${i}
elif [ "`cat ${i} | wc -l`" -gt "${common_hits}" ]
then
cat ${i} | sort -nr -k 5 | head -n ${common_hits} | \
awk '{print $1" " $2" " $3" " $4" " $5" " $6" " $7" "$8 ; print $9}' > ${i}.ph
fi
done