Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Получить имя файла без расширения  (Прочитано 10650 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Jack Sparrow

  • Автор темы
  • Активист
  • *
  • Сообщений: 641
    • Просмотр профиля
Делаю скрипт для сортировки фотографий по некоторому условию.
Даны файлы типа file.01.my_birthday.jpg и т.п. Нужно получить имя файла без расширения, т.е. file.01.my_birthday
Если использовать basename, то можно сделать, например, так:
file=$(basename file.01.my_birthday.jpg .jpg)
Недостаток в том, что нужно указывать конкретное расширение. А оно может быть разным, не только jpg, но и NEF, dng и др.
Можно использовать awk. Трудность в том, что в файле может быть несколько разделителей (точек). Если бы точка была только одна, т.е. та, что отделяет расширение, то можно было бы сделать, например, так:
file=$(echo DSC_0001.NEF | awk -F "." '{print $1}')
Есть еще у awk опция $NF, которая выводит количество полей. Можно подумать, как ее задействовать. Но, возможно, есть и более простое решение? Мне кажется, это должно быть востребовано.
Нейросети тебя не заменят. Тебя заменит человек, который умеет ими пользоваться.

Оффлайн hippi90

  • Активист
  • *
  • Сообщений: 433
    • Просмотр профиля
Re: Получить имя файла без расширения
« Ответ #1 : 28 Июля 2012, 20:15:37 »
 Use Python, Luke!

andrey_p

  • Гость
Re: Получить имя файла без расширения
« Ответ #2 : 28 Июля 2012, 20:36:03 »
Не усложняйте сущности. )))

myfile=any.ext               
echo ${myfile%.*}           
...
echo $myfile | sed 's/\..*//'
...

Оффлайн Jack Sparrow

  • Автор темы
  • Активист
  • *
  • Сообщений: 641
    • Просмотр профиля
Re: Получить имя файла без расширения
« Ответ #3 : 28 Июля 2012, 21:05:47 »
Самое оно!
Я же говорю, что должно быть легко :)
Нейросети тебя не заменят. Тебя заменит человек, который умеет ими пользоваться.

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Получить имя файла без расширения
« Ответ #4 : 29 Июля 2012, 17:46:10 »
Use Python, Luke!
Use brain! А так то оно где угодно просто делается.

Оффлайн astrobeglec

  • Активист
  • *
  • Сообщений: 838
  • Самая тяжелая ноша - пророк в извращенном мире...
    • Просмотр профиля
Re: Получить имя файла без расширения
« Ответ #5 : 29 Июля 2012, 18:07:26 »
Use brain!
А с прямыми руками к вышесказанному так и вообще отлично.
Я вернулся...

Оффлайн andrew_bye

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 2698
    • Просмотр профиля
Re: Получить имя файла без расширения
« Ответ #6 : 29 Июля 2012, 19:28:54 »
           
...
echo $myfile | sed 's/\..*//'
...

Но лучше, наверное, все-таки так
           
...
echo $myfile | sed 's/\.[^.]*$//'
...

 

Страница сгенерирована за 0.016 секунд. Запросов: 21.