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: