Создание папки и перемещение в нее файла.

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Soldier
ст. сержант
Сообщения: 364
Зарегистрирован: 2008-10-02 9:28:30

Создание папки и перемещение в нее файла.

Непрочитанное сообщение Soldier » 2010-06-21 10:53:50

Привет всем.
вопрос несколько не стандартный.
Есть директория. В ней лежат папки в перемежку с файлами.
Задача - взять имя файла в корневой папке, отсеять расширение, создать папку с именем файла (без расширения), положить файл.расширение в ранее созданную папку.

Сделал бы сам, но не получилось изъять поток на выходе.
Делал так:

Код: Выделить всё

ls -F | grep -v /
Заранее благодарен.
Tux: "Kill Bill !!!"

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Гость
проходил мимо

Re: Создание папки и перемещение в нее файла.

Непрочитанное сообщение Гость » 2010-06-21 23:15:06

без примера ввода и вывода непонятно

Код: Выделить всё

$ foo=/path/to/fileName.ext
$ bar=${foo##*/} && bar=${bar%.*}
$ echo $bar
fileName

FiL
ст. лейтенант
Сообщения: 1374
Зарегистрирован: 2010-02-05 0:21:40

Re: Создание папки и перемещение в нее файла.

Непрочитанное сообщение FiL » 2010-06-22 6:37:40

ага, заодно хорошо-бы узнать
а) какая ось (благо наличие "расширения" намекает на то, что речь таки идет о винде, а не о юникс-подобных)
б) что есть расширение и что есть "имя" в файле "21.06.2010 - Тест 24.txt.old"

ну а в остальном... если *Nix, то find . -type f -maxdepth 1 -exec .... ну и далее в соответсвии с приведенным примером
а если винда, то for %F in (*) do mkdir %~nF && move %F %~nF