當我運行此腳本,我收到一條錯誤消息:「排序:寫失敗:標準輸出:殘破的管道」bash的錯誤排序「排序:寫失敗:標準輸出:殘破的管道」
如果有人能幫助我這將是真棒,我瘋了這個錯誤
輸入文件是所有包含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
歡迎堆棧溢出的網站,請包你的代碼(S)爲代碼的標籤,每論壇規則和更清楚地說明問題,這樣我們就可以儘量幫你,謝謝。 – RavinderSingh13
我可以看到我們可以做出很多改變成你的腳本,你可以請張貼2兩件事,第1你有什麼要求(樣本INPUT_FILE和預期的output_file),如果你只想使用相同的腳本,則使用se t -x在你的腳本開始並向我們顯示輸出,但是你還是要讓我們知道你的需求(什麼是Input_file和代碼標籤中的output_file)。 – RavinderSingh13
感謝您的建議,我希望現在可以更容易理解 – Dani