[英]Combining multiple outputs from a loop into one text file with commas in Bash
我正在測試一種使用 bash 腳本的運動檢測方法。 我正在運行 ImageMagick 比較命令並將結果輸出到文本文件中。
循環每次運行時都會創建一個輸出。 我希望將每個輸出放入單個文本文件並用逗號分隔。
我目前使用的代碼是:
for (( x=1; x<=$vidLength; x++))
do
#Compare current frame with previous, saving result as "difference-current"png
compare -metric RMSE -fuzz 5% previous-001.png current-001.png difference+%x+.png 2>> motionData.txt
Done
這段代碼確實繼續將所有數據放入一個文本文件中,但數據顯示在一起,看起來就像一個大數字。
目前數據被放入文本文件,但顯示如下:“4873343460936622743393154537”
當我希望它閱讀時:“4873,343,4609,366,2274,339,315,4537”
你可以這樣做:
for (( x=1; x<=vidLength; x++)) # no need for $ here
do
#Compare current frame with previous, saving result as "difference-current"png
compare -metric RMSE -fuzz 5% previous-001.png current-001.png difference+%x+.png 2>> motionData.txt
if (( x<vidLength ))
then
printf , >> motionData.txt
fi
done
printf
在循環中compare
的每個輸出之間添加一個逗號。 該條件防止在最后一次迭代中添加逗號。
稍微不一樣 :
for (( x=1; x<=$vidLength; x++))
do
#Compare current frame with previous, saving result as "difference- current"png
compare -metric RMSE -fuzz 5% previous-001.png current-001.png difference+%x+.png
echo ","
done > motionData.txt
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.