Заменить [tr][tr]{X} на [tr][tr]{\tinyX} в длинном списке файлов в bash?

Предполагая, что у вас нет каталогов FOLDER.DUPLICATE.$DRIVEBENDERвнутри других каталогов FOLDER.DUPLICATE.$DRIVEBENDER, вы можете сделать что-то вроде:

find. -path '*/FOLDER.DUPLICATE.$DRIVEBENDER/*' -prune -type f -print0 |
  perl -0lne '
    if (m{(.*)/FOLDER.DUPLICATE.\$DRIVEBENDER/(.*)}s) {
      $upperfile = "$1/$2";
      if (-s > -s $upperfile) {
        rename $_, $upperfile or warn "rename $_: $!\n";
      } else {
        unlink $_ or warn "unlink $_: $!\n";
      }
    }'

(, если ваш findне поддерживает -print0, вы можете заменить его на-exec printf '%s\0' {} +).

0
24.11.2019, 10:13
0 ответов

Теги

Похожие вопросы