以下の文字列からパス位置を抽出する方法。
/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}
。私たちの場合、最後のスラッシュと次の文字の両方を削除しようとしています。word
parameter
/*
上記の結果は次のとおりです。
/opt/oracle/app/oracle/product/12.1.0/bin
ディレクトリ名の使用
ディレクトリ名パスから最後のコンポーネントを削除するために使用できます。
$ dirname -- "$str"
/opt/oracle/app/oracle/product/12.1.0/bin