как к сменной детали имени файла к чему-то еще на mutilple файлах

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

например,

Имя Dir 1 "Оранжевое" имя файла 1: имя файла 2 "water_orange.jpeg": 1_water_orange.jpeg" и т.д., и т.д. 15 файлов

Имя Dir 2 имя файла 1 "Индиго": имя файла 2 "water_indigo.jpeg": "1_water_indigo.jpeg" и т.д. и т.д. 15 файлов

У меня есть 7 каталогов с 15 файлами в каждом, и я хочу видеть, возможно ли изменить цветную часть имени файла в каждом каталоге, без должны использовать команду "mv" на каждом отдельном файле.

Я попробовал "эхо sed" команда и с одинарными и с двойными кавычками, но никакой удачей

т.е. повторите sed "s/orange/indigo/g" и повторите sed 's/orange/indigo/g'

любая справка искренне ценится

1
задан 16 November 2016 в 23:33

1 ответ

Что-то как следующее должно работать:

for i in $(ls *.jpeg)
do 
mv -v $i $(ls $i | sed 's/orange/indigo/')
done

, Но это очень неуклюжий синтаксис может быть чрезвычайно улучшен, как steeldriver предположил в комментариях ниже со следующим изящным синтаксисом:

for i in *.jpeg; do mv -v -- "$i" "${i/orange/indigo}"; done

Принимают во внимание, что оба из этих примеров для единственных каталогов и не являются рекурсивными...

0
ответ дан 8 December 2019 в 07:47

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

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