LINUX.ORG.RU

Ответ на: комментарий от sasha999

Ну, в man basename я ничего не наше... :( Может быть, у меня ман старый? Вот, а способ sasha999 не будет работать для файлов с точками в имени. Скажем, для My.Favorite.Pic.jpeg с помощью cut можно получить только "My", а нужно "My.Favorite.Pic".

anonymous
()
Ответ на: комментарий от anonymous

О, я сам придумал:

echo "hello.avi.jk.444" | sed -e 's/\.\([^\.]*\)$//'

хотя коряво, конечно... нет ли более красивого способа?

anonymous
()
Ответ на: комментарий от anonymous

для начально условия

for i in *.java; do
  mkdir -p `basename $i .java`
done

для общего случая

for i in *; do
  mkdir -p `echo $i | sed "s%\.[[:alpha:]]*$%%"`
done


ananas ★★★★★
()

for i in * ; do mkdir `echo $i|rev|cut -d . -f 2-|rev` ; done

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