#!/bin/bash

####################################################################
#####                                                          #####
#####            AUTHOR: BORIS KIEFER (08/2019)                #####
#####                                                          #####
####################################################################

# THIS SOFTWARE IS DISTRIBUTED AS IS WITHOUT ANY WARRANTY
# USE AT YOUR OWN DISGRESSION
#
# ==> WORK ON A COPY OF THE RECOVERED FILES 
#     IN CASE SOMETHING GOES WRONG

echo
echo "OBJECTIVE: "
echo "MOVE FILES BY grep COMPATIBLE regex KEYWORD(S)"
echo  

# COMBINE KEYWORDS 
#  seis.*tomography :: seis ... tomography     DEPENDS ON ORDER
#  tomography.*seis :: tomography ... seis     DEPENDS ON ORDER
#  seis.*tomography|tomography.*seis       INDEPENDENT OF ORDER
#  
#KEYWORD="seis.*tomography"
KEYWORD="$1"
echo "KEYWORD: $KEYWORD"

# GENERATE TARGET DIRECTORY NAME
TARGET=`echo "$KEYWORD" | sed 's/\.\*/_/g'`
echo "TARGET DIRECTORY: $TARGET"

# START PROCESSING THE FILES
# INITIALIZE COUNTERS
ndir=0
nfiles=0
nfmv=0
nfrem=0

# MAKE TARGET DIRECTORY IF NEEDED
mkdir -p ./ZREC_BK/$TARGET

# Loop over recovered directories
for direc in recup_dir.*
 do 

 ndir=$(( $ndir + 1 ))
 echo "SCRIPT: ENTERING $direc"
 cd $direc

#
for cfile in $( ls -1 *pdf )     # LOOP OVER ALL FILES
 do

# Count total number of files
 nfiles=$(( $nfiles + 1 ))

# Count the number of occurences
 TEXT=`echo "$cfile" | cut -d. -f1`
 TEXT=$TEXT.txt
 OCCUR=`grep -iE $KEYWORD $TEXT | wc -l`
# OCCUR=`egrep -i $KEYWORD $TEXT | wc -l`

 if [[ $OCCUR -gt 0 ]]; then             # SAME SIZE 
 
  nfmv=$(( $nfmv + 1 ))
  echo "===> MATCH $direc $cfile"
  mv $cfile ../ZREC_BK/$TARGET
  mv $TEXT  ../ZREC_BK/$TARGET

 else

  nfrem=$(( $nfrem + 1 ))

 fi

done   # END LOOP OVER FILES

echo "==> $direc $nfmv $nfrem"

cd ..

pwd

done   # END LOOP OVER DIRECTORIES

echo "SUMMARY: "
echo "DIRS                   : $ndir"
echo "NFILES                 : $nfiles"
echo "MOVED                  : $nfmv"
echo "REMAINING              : $nfrem"
