2012-02-10 27 views
1

私はLinuxの初心者です.bashスクリプトの絶対パスからファイル名の一部を抽出しようとしています。たとえば、パスが/opt/data/filename-attribute.datであれば、私は次のようにディレクトリのパスとファイルを取得することができています:シェル内のファイル名の一部を抽出する

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

私は、ファイルから属性を抽出したいと思いますこれを実行するためのシェルスクリプトが素早く存在するかどうか疑問に思っていました。

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

でファイル名属性を取得でき、属性のみを抽出したいと考えています。

+0

接尾辞を使用すると、 'ベース名$を使用することができ.dat''正確に常にある場合パス.datなど... –

+2

ファイル拡張子を尋ねています。属性は非常に異なるものです。 attr(5)を参照してください(例えば、 "man 5 attr"を実行してください)。 –

答えて

1

あなたを理解していれば、最も簡単な方法は、ちょうど2つのステップでそれを行うことです。

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

これはうまくいきました。ありがとう – LoudKur

0

私は右

a="${f#*-}" 
関連する問題