我有數百個包含類似於此行的文件的:錯誤awk命令的回聲管道輸送到WC -l
>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
所有的變化都會產生無效的選項錯誤,具體取決於哪些行未被註釋。
非常感謝。
春天來了!是的,除了-v和x =的東西,我總是忘記它是',不是'。非常感謝@nickie。完美的作品。 – cer
也@nickie,非常感謝你的解釋。 – cer