LINUX.ORG.RU

Что самое смешное - только сегодня с этим боролся. Делается это примерно так: bash$ for f in *.tmp ; do mv $f `echo $f | sed s/tmp/bak/`; done При этом все файлы каталога с расширением .tmp становятся с расширением .bak Подправь под себя и пользуйся на здоровье!

oduvan
()

С одним расширением понятно. Но у меня они все разные - r01, r02, etc. Как в этом случае?

Vidopliassov
() автор топика

for foo in *%20; do cp $foo `basename $foo %20`; done

borisych ★★★★★
()

ступил. если все заканчиваются на пробел , то

for foo in *\ ; do cp $foo `basename $foo \ `; done

borisych ★★★★★
()

никто не знает прогу типа basename тока с префиксами ?

borisych ★★★★★
()

что значит "тока с префиксами"?

lg ★★
()

Префиксы - это начала слова: "префиксимясуффикс". basename (которого я не знал :) работает с удалением суффиксов. а с префиксами должен работать мой вариант в первом ответе, только регулярное выражение должно иметь вид s/^prefix/change_to/ - тогда все будет работать с началом слова.

oduvan
()

не знаю о чем вы .. есть стандартные вещи dirname и basename

lg ★★
()

touch abc.def;for i in *.def ; echo It is suffix ${i#abc}; echo It is preffix ${i%d*f}; done ; # Try it IVO

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.