Использование инструментов StringSolver (Windows & Linux Bash), которые обрабатываются на примерах:
filter fghfilea ok fghreport ok notfghfile notok; mv --all --filter fghfilea jklfilea
Сначала он вычисляет фильтр на основе примеров , где входными данными являются имена файлов и выходные данные (ok и notok, произвольные строки). Если бы фильтр имел опцию --auto или был вызван один после этой команды, он создаст папку ok
и папку notok
и отправит им файлы соответственно.
Затем, используя фильтр, mv
команда представляет собой полуавтоматическое движение, которое становится автоматическим с модификатором --auto. Используя предыдущий фильтр благодаря --filter, он находит отображение из fghfilea
в jklfilea
и затем применяет его ко всем отфильтрованным файлам.
Другие однолинейные решения
Другие эквивалентные способы сделать то же самое (каждая строка эквивалентна), так что вы можете выбрать свой любимый способ сделать это.
filter fghfilea ok fghreport ok notfghfile notok; mv --filter fghfilea jklfilea; mv
filter fghfilea ok fghreport ok notfghfile notok; auto --all --filter fghfilea "mv fghfilea jklfilea"
# Even better, automatically infers the file name
filter fghfilea ok fghreport ok notfghfile notok; auto --all --filter "mv fghfilea jklfilea"
Многошаговое решение
Чтобы тщательно определить, хорошо ли работают команды, вы можете набрать следующее:
filter fghfilea ok
filter fghfileb ok
filter fghfileb notok
и когда вы уверены, что фильтр хорош, выполните первый шаг:
mv fghfilea jklfilea
Если вы хотите протестировать и использовать предыдущий фильтр, введите:
mv --test --filter
Если преобразование не то, что вы хотели (например, даже с mv --explain
вы видите, что что-то не так), вы можете напечатать, mv --clear
чтобы перезапустить движущиеся файлы, или добавить больше примеров, mv input1 input2
где input1 и input2 - другие примеры.
Когда вы уверены, просто введите
mv --filter
и вуаля! Все переименование осуществляется с помощью фильтра.
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я являюсь соавтором этой работы, созданной для академических целей. Возможно, скоро появится функция создания bash.