[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Отрезать расширение в bash



особенно в виде:
echo (2007)-super-puper.artist.album.KWWKER.black_jeans.funk.flac

:)
даже лучше проиллюстрирую:
echo  W.A.S.P..[1984-1997].[CD].W.A.S.P..(Remastered).[EAC.APE].by.xileforud.[MeTaLMaDNeSS.TeaM].rar | blabla_comanda

на самом деле таких больных флаков у меня нет (качаю в основном с сайтов с утрясшимися стандартами именования) - более менее однотипные имена с которыми можно в теории обойтись нижеописанным образом. 
но шанс нарваться - есть (особенно у любителей електронщины - там именование логике вообще не поддается) - поетому метод должен быть универсальным и независящим от больной фантазии кодировщиков
:)

зыЖ
гораздо более применимо ( раз уж речь о не столь лаконичных баранах ) 
echo "filename.[strong].-.(perverted).flac" | sed 's/.*\.//' 

дополнительно замечу, что в данных строках обрезается имя файла и необходимо будет потом отрезать от файла полученное в наших примерах расширение.
:)
а ето уже громоздковато:
----8<----
#!/bin/sh
ext=`echo "filename.[strong].-.(perverted).flac" | sed 's/.*\.//'` &> /dev/null
fname="filename.[strong].-.(perverted).flac"
name=`echo "$fname" | sed 's/\.'$ext'$//'`
echo "$name"

,------[Павел Марченко, Mon, 8 Sep 2008 08:45:20 +0300]
|$echo "filename.flac" | cut -d '.' -f 2
|
|8 сентября 2008 г. 1:05 пользователь -=Devil_InSide=-
|<devil_inside@mail.ru>написал:
|
|>
|> ,------[Dmitry Fedorov, Mon, 8 Sep 2008 04:44:07 +0700]
|> |8 сентября 2008 г. 4:26 пользователь Mikhail Ramendik написал:
|> |> Глобально: надоело путаться в bash, но чем бы другим делать простые
|> связки
|> |> между несколькими утилитами?
|> |
|> |rc
|> |
|> |Description: an implementation of the AT&T Plan 9 shell
|> | rc is a command interpreter and programming language
|> | similar to sh(1). It is based on the AT&T Plan 9 shell of the
|> | same name. The shell offers a C-like syntax (much more so
|> | than the C shell), and a powerful mechanism for manipulating
|> | variables. It is reasonably small and reasonably fast,
|> | especially when compared to contemporary shells. Its use is
|> | intended to be interactive, but the language lends itself well
|> | to scripts.
|> |
|> |
|> |> Текущий вопрос: в $i есть filename.flac , надо получить просто filename,
|> |> как?
|> |
|> |basename $i .flac
|> |
|> |но путь он тоже отрежет, если есть.
|>
|> `-----------------
|> а я, неумный человек, через sed/tr ето дело пускал
|> ы!
|> %:)

`-----------------

-- 
_________
mpd status:	[paused]
Pretty Maids - Far Far Away
**************************************
*          icq: 161874711            *
*  jabber:  devil_inside@jabber.ru   *
*irc.starlink.ru,#Gene, Devil_InSide *
*            ftp://gas/              *
*           http://gas/              *
*   Registered linux user #450844    *
**************************************


Reply to: