С Баш:
for f in db_[0-9]*_[0-9]*; do
e_time="${f:14:10}" # extracting 'earliest time'
if [ $e_time -ge 1488344400 ] && [ $e_time -le 1497499200 ]; then
echo "$f"
fi
done
Нашел решение, которое работает для меня:
aAllDisks=($(/usr/bin/lsblk --nodeps --noheadings --output NAME --paths))
aFreeDisks=()
for sDisk in "${aAllDisks[@]}"; do
sMounts="$(/usr/bin/lsblk --noheadings --output MOUNTPOINT "${sDisk}" | grep -vE "^$")"
if [ "${sMounts}" == "" ]; then
aFreeDisks+=("${sDisk}")
fi
done
echo "${aFreeDisks[@]}"
При этом сначала будут получены все установленные физические диски, а затем пройдено по ним. Если на диске нет монтирования, он будет собран для последующего использования. В приведенном выше примере я просто повторяю это.