次のようなファイルの大きなリストがあります。
/tmp/a/b/a
/var/files/z
/tmp/o
.
.
.
すべての行で、ファイル名ではなくすべてのディレクトリを一致させる必要があります。どうすればbashでそれを行うことができますか?
バッシュ:
path="$(pwd)"
echo "$path"
echo "${path%/*}"
すべてのパスがファイルで終わると想定している場合は、を使用できますdirname
。
dirname /var/files/z
/var/files
ファイルとディレクトリが混在している場合は、bash-d
と-f
ファイルテスト演算子を使用して、を実行する前に確認できますdirname
。