Shell:如果filename.bar不存在,则删除filename.foo

时间:2016-05-01 14:52:11

标签: shell ubuntu

我想检查目录(rf)中的所有JPG。如果不存在具有相同文件名的WEBP文件>删除JPG文件。

示例:

  • /a/1.jpg(ok)
  • /a/1.webp
  • /x/2.jpg(del)
  • /x/3.jpg(ok)
  • /x/3.webp

2 个答案:

答案 0 :(得分:4)

我不会给你完整的脚本,所以你有机会弄清楚并学到一些东西。以下是切断和追加字符串的方法:

jpg="/a/1.jpg"
webp="${jpg%.jpg}.webp"
if ! test -f "$webp"; then rm -f -- "$jpg"; fi

答案 1 :(得分:0)

在Jens的帮助下:

#!/userbin/bash

for jpg in $(find /var/path/* -name '*.jpg')
do
    webp="${jpg%.jpg}.webp"

    if [ ! -f "$webp" ]; then
        rm $jpg;
    fi
done