Как переименовать несколько папок одновременно, чтобы удалить определенные символы?

Сawk:

awk -F \" 'NF % 2' < yourfile

Для четного числа раз (нечетное количество полей, где поля разделены"-).

awk -F \" 'NF % 2 == 0' < yourfile

Или разделить файл на два файла:

awk -F \" '{if (NF%2) print > "even.txt"
            else print > "odd.txt"}' < yourfile

Для нечетного числа раз.

С grep, для четного числа:

grep -Ex '(([^"]*"){2})*[^"]*'

Для нечетного числа добавьте опцию -v.

-2
08.07.2019, 08:56
4 ответа

Установите DoubleCommander(doublecmd). Он имеет функцию группового переименования (Ctrl+M).https://doublecmd.github.io/doc/en/help.htmlЕсли вы установили Thunar-http://freesoftwaremagazine.com/articles/bulk_renaming_thunar/

1
28.01.2020, 05:15

Попробуйте это,мы можем удалить суффикс 3 символа, используя приведенный ниже код

find. -maxdepth 1 -mindepth 1 -name '*-v4' -type d -execdir bash -c 'mv "$1" "${1%???}"'  mover {} \;
0
28.01.2020, 05:15

Используйте findс командами xargs:

find -maxdepth 1 -type d -name '*-v4' -print0 | \
  xargs -0 -I % bash -c 'mv -v "%" "$(echo % | sed "s/-v4$//")"'

find-поиск файлов в иерархии каталогов

xarg-выполняет команду(bashздесь )с аргументом изfind

echo % | sed "s/-v4//"-удаляет -v4из имени файла

-1
28.01.2020, 05:15

В bash, dash, zshи, возможно, других оболочках с расширением параметров и предполагая, что только каталоги заканчиваются суффиксом -v4, вы могли бы сделать:

for i in *-v4; do mv "$i" "${i%-v4}"; done
2
28.01.2020, 05:15

Теги

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