在shell中提取文件名的一部分

时间:2012-02-10 20:41:37

标签: linux bash shell extract

我是Linux的新手,我试图从bash脚本中的绝对路径中提取部分文件名。例如,如果路径是/opt/data/filename-attribute.dat,我可以获取目录和文件的路径,如下所示:

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

我想从文件中提取属性,并想知道在shell脚本中是否有快速方法来执行此操作。我可以通过

获取filename-attribute
f=${name%%[.]*}

并且只想提取属性。

2 个答案:

答案 0 :(得分:1)

最简单的方法就是分两步完成:

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

答案 1 :(得分:0)

如果我理解你的话

a="${f#*-}"