Added snippet check_folder_for_extension.sh
This commit is contained in:
51
check_folder_for_extension.sh
Executable file
51
check_folder_for_extension.sh
Executable file
@@ -0,0 +1,51 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
## Checks given folder for files with certain extensions. Subfolders are checked recursively.
|
||||||
|
## $1 Folder to check.
|
||||||
|
## $2 space separated list of extensions to check for. e.g.: "*.jpg *.JPG *.mp4 *.MP4".
|
||||||
|
## returns Count of files found with the desired extension.
|
||||||
|
|
||||||
|
__check_folder() {
|
||||||
|
local _FOLDER=$1;
|
||||||
|
local _EXTENSIONS=$2;
|
||||||
|
local _FILE_C=0;
|
||||||
|
if [ -d "$_FOLDER" ]; then # is a folder
|
||||||
|
local _ITEM="";
|
||||||
|
local _FC=${#FILESNPATHS[@]};
|
||||||
|
pushd "$_FOLDER" 1>/dev/null;
|
||||||
|
for _ITEM in ${_EXTENSIONS}; do # lookup all files with the desired extensions
|
||||||
|
if [[ -f "$_ITEM" ]]; then # is a file
|
||||||
|
FILESNPATHS[$_FC]="$(pwd)/$_ITEM";
|
||||||
|
((_FC+=1));
|
||||||
|
((_FILE_C+=1));
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
# check subfolders if exist
|
||||||
|
local _SUBFOLDERS="$(/usr/bin/ls . 2>/dev/null)";
|
||||||
|
local _CNT=0;
|
||||||
|
for _SUBITEM in ${_SUBFOLDERS}; do
|
||||||
|
if [[ -d "$_SUBITEM" ]]; then
|
||||||
|
__check_folder "$_SUBITEM" "$_EXTENSIONS";
|
||||||
|
_CNT=$?
|
||||||
|
((_FILE_C+=_CNT));
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
popd 1>/dev/null;
|
||||||
|
fi
|
||||||
|
return $_FILE_C
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
__test() {
|
||||||
|
MYFOLDER="./test";
|
||||||
|
__check_folder $MYFOLDER "*.jpg *.JPG *.mp4 *.MP4"
|
||||||
|
FILE_COUNT=$?
|
||||||
|
echo "Found $FILE_COUNT files in folder $MYFOLDER, length of files array is ${#FILESNPATHS[*]}.";
|
||||||
|
for ((FILE_C=0;FILE_C<${#FILESNPATHS[*]};FILE_C++)); do
|
||||||
|
echo "$FILE_C ${FILESNPATHS[$FILE_C]}";
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
declare -A FILESNPAHTS;
|
||||||
|
|
||||||
|
__test
|
||||||
Reference in New Issue
Block a user