16.06.2008

Bash, переименовать файлы регулярным выражением

Никогда не углублялся в изучение bash. Админы, пользующиеся всякими grep-ами для меня как шаманы. Но тут вдруг стало нужно куче файлов изменить расширение. Решил не писать скрипт на php, а посмотреть что умеет bash :) Решиние одной строкой:

for i in *.m4a; do j=`echo $i | sed 's/m4a/m4b/g'`; mv "$i" "$j"; done


Соответственно вместо *.m4a можно вписать любое множество файлов, вместо m4a и m4b любые регулярные выражения.

2 комментария:

Павел Воронин комментирует...

Всё достаточно интуитивно. =)
rename .m4a .m4b /путь/*.m4a

Pilot34 комментирует...

никогда бы не догадался) спасибо!

Отправить комментарий