我是Linux的新手,並試圖從bash腳本中的絕對路徑中提取部分文件名。例如,如果路徑是/opt/data/filename-attribute.dat,我能夠得到的目錄路徑和文件如下:在shell中提取部分文件名
sourcedir=`dirname $path`
name=`basename $path`
我想從文件中提取屬性並想知道是否有一個在shell腳本中執行此操作的快速方法。我可以通過
f=${name%%[.]*}
並且想提取屬性。
我是Linux的新手,並試圖從bash腳本中的絕對路徑中提取部分文件名。例如,如果路徑是/opt/data/filename-attribute.dat,我能夠得到的目錄路徑和文件如下:在shell中提取部分文件名
sourcedir=`dirname $path`
name=`basename $path`
我想從文件中提取屬性並想知道是否有一個在shell腳本中執行此操作的快速方法。我可以通過
f=${name%%[.]*}
並且想提取屬性。
最簡單的方法就是做兩個步驟:
f="${name%.*}" # strip everything from the last dot onward
f="${f##*-}" # strip everything up through the last hyphen
工作正常。謝謝 – LoudKur 2012-02-10 23:53:23
如果我理解你的權利
a="${f#*-}"
在後綴總是精確'.dat'你可以使用'基名$路徑.dat'等... – 2012-02-10 20:50:30
您正在詢問關於文件擴展名。屬性是一個非常不同的東西。見attr(5)(例如,執行「man 5 attr」) – 2012-02-10 20:58:41