将一个循环的多个输出组合到一个文本文件中,在 Bash 中使用逗号
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
我正在测试一种使用 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