sed を使用してパス文字列から最後の / を削除します。

sed を使用してパス文字列から最後の / を削除します。

sedを使用して次のディレクトリ構造の最後の/を置き換えようとしましたが、成功しませんでした。どんな提案がありますか?

入力はで、/tmp/ABC/Dirs/出力は次のようになります。/tmp/ABC/Dirs

echo " /tmp/ABC/Dirs/"  | sed -r "s/\/(?:[a-zA-Z0-9])/g"

ベストアンサー1

sed/bashここではやや過度に見えます。 Kornシェル(およびPOSIXがこのユーティリティにKornシェル機能を指定したため、すべてのPOSIX準拠シェルなどの同様のシェルsh)から末尾を直接削除できます。

$ foo=/tmp/ABC/Dirs/
$ echo "${foo%/}"
/tmp/ABC/Dirs

おすすめ記事