次のようにサブディレクトリとして構成されたディレクトリがあります。
a1
b1
c1
c2
c3
d1
指定された文字の最新のサブディレクトリでのみ実行されるループを実行しようとしています。つまりa1
、、、、b1
およびc3
を繰り返しますが、合計はd1
無視されます。これまでの努力は、サブディレクトリ名の数値を直接比較することにのみ集中していましたが、うまくいきませんでした。私は初めてbashに触れたので、これが私が見逃した簡単な修正であれば謝罪します。c1
c2
ベストアンサー1
これはあなたの目標を達成したようです
#!/bin/bash
for DIR in {a..z}
do
GOOD=$(find ${DIR}[0-9] -type d -print -prune 2>/dev/null | tail -1)
if [[ "$GOOD" ]]; then
echo $GOOD
fi
done
使用例:
$ mkdir a1 b1 c1 c2 c3 d1
$ ./a.sh
a1
b1
c3
d1
$