2012-02-10 1 views
1

Я новичок в Linux и пытаюсь извлечь часть имени файла из абсолютного пути в сценарии bash. Например, если путь /opt/data/filename-attribute.dat, я могу получить путь к директории и файл следующим образом:Извлечь часть имени файла в оболочке

sourcedir=`dirname $path` 
name=`basename $path` 

Я хотел бы извлечь атрибут из файла и задавался вопросом, был ли быстрый способ в сценарии оболочки выполнить это. Я могу получить атрибут filename на

f=${name%%[.]*} 

и хотел бы извлечь только атрибут.

+0

Если суффикс всегда точно '.dat' вы можете использовать' $ базовое путь .dat' и т. д. –

+2

Вы спрашиваете о расширениях файлов. Атрибуты - совсем другое дело. См. Attr (5) (например, выполнить «man 5 attr») –

ответ

1

Самый простой способ, это просто сделать это в два этапа:

f="${name%.*}" # strip everything from the last dot onward 
f="${f##*-}"  # strip everything up through the last hyphen 
+0

Это сработало. благодаря – LoudKur

0

Если я правильно Вас понял

a="${f#*-}" 

 Смежные вопросы

  • Нет связанных вопросов^_^