Извлечь часть имени файла в оболочке - PullRequest
1 голос
/ 11 февраля 2012

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

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

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

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

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

Ответы [ 2 ]

1 голос
/ 11 февраля 2012

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

f="${name%.*}"   # strip everything from the last dot onward
f="${f##*-}"     # strip everything up through the last hyphen
0 голосов
/ 11 февраля 2012

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

a="${f#*-}"
...