我有一个包含大量视频和缩略图的文件夹。在Plex上观看视频后,我在Web界面上将其删除。因此文件中的缩略图保留在文件夹中。
现在我想编写一个删除所有缩略图的程序,如果没有等效的mp4文件。
以下是文件夹“ls”的示例:
PietSmiet - BATTLEFIELD HARDLINE 1920x1080.jpg
PietSmiet - CITIES SKYLINES#45 1920x1080.jpg
PietSmiet - GTA ONLINE#89 1920x1080.jpg
PietSmiet - MEIN ARSCH BRICHT AUS 1920x1080.jpg
PietSmiet - MINECRAFT Adventure Map#92 1920x1080.jpg
PietSmiet - TTT#171 1920x1080.jpg
PietSmiet - TTT#171 1920x1080.mp4
答案 0 :(得分:0)
解决此问题的一种方法是通过执行此操作的脚本过滤排序列表:
这可能有一些重复的行 - 您可以在脚本中处理。但更简单的方法是通过uniq
来管道结果。此外,我会将语言环境覆盖到POSIX,以摆脱有时奇怪的整理顺序,它们可以等同于大写/小写(并使比较复杂化)。
在POSIX shell中,这将是两个脚本,例如,一个接受包含文件名列表的文件:
#!/bin/sh
unset LANG
unset LC_ALL
unset LC_CTYPE
sort $* | my-filter | uniq
和my-filter
脚本:
#!/bin/sh
last_file=
last_trim=
while :
do
read this_file
[ -z "$this_file" ] && break
this_trim=$(echo "$this_file" | sed -e 's/\.[^.]*$//')
if [ "$this_trim" = "$last_trim" ]
then
echo "$last_file"
echo "$this_file"
fi
last_trim="$this_trim"
last_file="$this_file"
done