シェルを使用してファイルの場所からパスを抽出する方法

シェルを使用してファイルの場所からパスを抽出する方法

以下の文字列からパス位置を抽出する方法。

/opt/oracle/app/oracle/product/12.1.0/bin/tnslsnr

期待される出力。

/opt/oracle/app/oracle/product/12.1.0/bin

(または)

/opt/oracle/app/oracle/product/12.1.0/bin/

ベストアンサー1

シェルのサフィックス除去機能の使用

str=/opt/oracle/app/oracle/product/12.1.0/bin/tnslsnr
path=${str%/*}
echo "$path"

一般的に${parameter%word}。私たちの場合、最後のスラッシュと次の文字の両方を削除しようとしています。wordparameter/*

上記の結果は次のとおりです。

/opt/oracle/app/oracle/product/12.1.0/bin

ディレクトリ名の使用

ディレクトリ名パスから最後のコンポーネントを削除するために使用できます。

$ dirname -- "$str"
/opt/oracle/app/oracle/product/12.1.0/bin

おすすめ記事