basename[115053] берет только один суффикс для удаления, и дает базовое имя (удаляет компоненты каталога), которое вам все равно там не нужно, так что [115054]basename[115055] на самом деле не является подходящим инструментом для ваших нужд.
Традиционным инструментом для извлечения данных из строки является [115056]expr[115057]:
Но современные оболочки (такие как [115058]zsh[115059], [115060]bash[115061], [115062]ksh[115063], [115064]ash[115065], [115066]yash[115067], все POSIX-совместимые [115068]sh[115069]. ...) имеют встроенные операторы для этого, так что вам вряд ли когда-нибудь понадобятся [115070]expr[115071] в настоящее время (и этого лучше избегать, так как у него есть несколько проблем).
удаляет (наименьший) шаблон соответствия деталей из конца [115072]$var
Оболочки вроде [115074]tcsh[115075] или [115076]zsh[115077] имеют операторы для удаления расширений. Zsh:
([115078]r[115079] для [115080]rootname[115081]).
Если вы хотите удалить расширение, только если это одно из jpg/png/gif, то это становится более сложным и зависит от оболочки.
С [115082]zsh[115083]:
C:\Ruby\bin> cd /d D:\
D:\>
С [115084]ksh[115085]:
C:\Ruby\bin> cd D:\
C:\Ruby\bin> D:
D:\>
С [115086]bash[115087]:С [115088]expr[115089]:
(да, это запутанно, и это для того, чтобы обойти некоторые вопросы [115090]expr[115091]).
С некоторыми реализациями [115092]expr[115093] можно упростить до:
Вы также можете использовать [115094]sed[115095]:
c---rw---- 1 root lp 6, 0 2011-06-26 22:47 /dev/lp0
Если Вы хотите, чтобы он был нечувствителен к регистру, Вы можете заменить [115096]png/gif/jpg[115097] во всех вышеперечисленных решениях на [115098][pP][nN][gG]. ...[115099], некоторые оболочки/инструменты также могут делать согласование без учета регистра:
sudo chmod 666 /dev/lp0
zsh[115101]:
echo "Y helo thar" > /dev/lp0
ksh93[115103]:
bash[115105]:
GNU [115106]sed[115107]:
Команда groups
не показывает вам все группы , он просто перечисляет все группы, членом которых является пользователь.
Таким образом, если вы создали группу, но ваш пользователь не является ее участником, группы
не будут отображаться. И если вы попытаетесь создать группу снова, вы получите сообщение об ошибке.