Viji
@Viji
Associate DevOps Engineer

Как найти и переименовать все файлы, удалив подстроку (-git)?

вроде просто, но эти два простых скрипта не работают (не хочу использовать/устанавливать rename)

find . -type f -name "*.txt" -exec sh -c 'mv "$0" $(echo -n "${$0/-git/}")' '{}' \;


или такой

find . -type f -name "*.txt" -print0 | xargs -0 -I{} fname={} && mv "$fname" $(echo -n "${$fname/-git/}")
  • Вопрос задан
  • 94 просмотра
Решения вопроса 2
3vi1_0n3
@3vi1_0n3
#!/bin/bash

find . -name "*-git*.txt" | (
IFS='
'
while read oldname
do
newname=${oldname//-git}
mv "$oldname" "$newname"
done
)
Ответ написан
Viji
@Viji Автор вопроса
Associate DevOps Engineer
вот так

#!/bin/bash

find . -name "*-git*.txt" | (
IFS='
'
while read oldname
do
newname=${oldname/-git/}
mv "$oldname" "$newname"
done
)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы