ファイルのデフォルト名を削除し、ディレクトリ部分を保持します。

ファイルのデフォルト名を削除し、ディレクトリ部分を保持します。

次の文字列があります。

dir/subdir/othersubdir/file.txt

しかし、次のように見えるかもしれません。

dir/file.txt

または

dir/subdir/file.txt

$Pディレクトリのフルパスを持つスクリプトを作成していますfile.txt

今私はこれを使う

sed 's/\/.*txt//g'

txtとinで終わりを変えてください/。このようなものがあればうまくいきますdir/file.txtが、他の例では機能しません。自分が好きなようにするにはどうすればよいですか?

以前のサブディレクトリと一致させたくありません.*txt。ファイルのデフォルト名を削除したいと思います。

ベストアンサー1

使用に固執しない場合は、sed次の使用を検討できますdirname

S="dir/subdir/othersubdir/file.txt"
P=$(dirname $S)
echo $P
dir/subdir/othersubdir

S="dir/file.txt"
P=$(dirname $S)
echo $P
dir

おすすめ記事