find コマンドの出力は次のようになります。
/home/user/test/folder1/abc.png
今私は得たい
フォルダ1
上記の文字列から
答え1
ルートの左側の固定位置または右側の固定深さに基づいてルートの対応する部分をお探しですか?左側から見ると、次のようにフィールド区切り文字として "/"を使用し、4番目のフィールドをキャッチしてcutを使用して簡単にこれを実行できます。
find ... | cut -d/ -f4
答え2
path=/home/user/test/folder1/abc.def
folder=$(basename $(dirname $path))
または、 find 出力を処理する場合(たとえば、複数のパス、1 行に 1 つ)
find ... | awk -F/ '{print $(NF-1)}'
find ... | sed 's#.*/\([^/]*\)/[^/]*$#\1#'
答え3
私はawkを使用します。
それは次のとおりです。
find /home -name "abc.png" | awk -F"/" '{print $5}'
答え4
私の試みは次のとおりです。
find . -name abc.png -exec dirname {} \; |grep -o '[^/]*$'