Переименуйте все пустые папки с помощью `$ empty`

У меня много папок, у которых в именах папок оказалось слишком много empties, и мне нужно удалить все empty и оставить папки с $1.empty

Конечно, моя логика здесь есть недостатки, поскольку я не уверен, как получить имя файла new. Я могу получить только то, что совпадает с регулярным выражением.

#!/bin/sh

for I in `cat filelist`;
do
     # for renaming, use mv
    NEWNAME = `$I.empty`
    echo $NEWNAME 
done

Цель состоит в том, чтобы заменить папки, которые имеют $ empty.empty, то быть $.empty. Папки, которые не содержат empty.empty, должны быть оставлены в покое.

enter image description here

1
задан 30 October 2019 в 17:49

1 ответ

Используйте rename:

rename 's/ empty\.empty$/.empty/' *empty.empty

Вы, возможно, должны были бы установить rename:

sudo apt install rename
<час>

Альтернатива с чистый bash :

for d in *empty; do
    mv -i "$d" "${d% empty*}.empty"
done
2
ответ дан 10 November 2019 в 20:03

Другие вопросы по тегам:

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