我正在尝试编写一个bash脚本,该脚本将以特定格式保存我拍摄的文件的屏幕截图。我希望将其保存为数字(例如0001.jpeg),如果0001.jpeg已经存在,请继续将其另存为0002.jpeg,依此类推。我知道,使用时ffmpeg
,当尝试从视频中保存帧时,您可以采用这种保存方式的格式:/path/to/place/%04d.ext
它可以完成我想要的操作。我尝试用我的代码,使其看起来像这样:
gnome-screenshot -w -B -f /home/usr/ws/images_to_process/$%04d.jpeg
我也尝试过:
gnome-screenshot -w -B -f /home/usr/ws/images_to_process/$(%04d).jpeg
和:
gnome-screenshot -w -B -f /home/usr/ws/images_to_process/%04d.jpeg
但这没用。如您所见,我想不出太多可变性。有人知道怎么做吗?
谢谢
您正在使用正确的数字格式生成输出文件名,但是需要一个变量和一个printf才能将“ /home/usr/ws/images_to_process/%04d.jpeg”转换为“ / home / usr / ws / images_to_process / 0001.jpeg”
我编写了一个小脚本,该脚本使用序列号创建文件,而不会覆盖现有文件。
#!/bin/bash
FILENAME="file_%04d.txt"
COUNTER=0
#Change true for your finish condition
while true; do
target=$(printf $FILENAME $COUNTER)
# If not exists file $tarjet
# -f check if exist a file
# ! not condition
if [ ! -f $target ]; then
touch $target
fi
# counter ++
COUNTER=$(($COUNTER + 1))
done
您可以将“ gnome-screenshot -w -B -f $ target”的“ touch $ target”更改为输出文件名的变量“ target”。结果脚本为:
#!/bin/bash
FILENAME="/home/usr/ws/images_to_process/%04d.jpeg"
COUNTER=0
while true; do
target=$(printf $FILENAME $COUNTER)
if [ ! -f $target ]; then
gnome-screenshot -w -B -f $target
fi
COUNTER=$(($COUNTER + 1))
done
我希望该信息有用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句