Przeglądaj źródła

Track seen prefixes to avoid duplicated output

Zachary Kotlarek 9 lat temu
rodzic
commit
c505cc4e51
1 zmienionych plików z 10 dodań i 5 usunięć
  1. 10 5
      tvdup.sh

+ 10 - 5
tvdup.sh

@@ -2,6 +2,7 @@
 set failglob
 set failglob
 
 
 cd /mnt/media/TV
 cd /mnt/media/TV
+declare -A seen
 while IFS= read -r -d '' lpath; do
 while IFS= read -r -d '' lpath; do
 	count=0
 	count=0
 	file="`basename "${lpath}"`"
 	file="`basename "${lpath}"`"
@@ -21,10 +22,14 @@ while IFS= read -r -d '' lpath; do
 		count=$(( $count + 1 ))
 		count=$(( $count + 1 ))
 	done
 	done
 	if [ $count -ne 1 ]; then
 	if [ $count -ne 1 ]; then
-		lastNum=$num
-		echo "Multiple matches for: ${dir}/${num} - " 1>&2
-		ls -lhtQ "${dir}/${num} - "*
-		sudo chattr -i "${dir}/${num} - "*
-		touch "${dir}/${num} - "*
+		id="${dir}/${num} - "
+		if [ -n "${seen["${id}"]}" ]; then
+			continue
+		fi
+		seen["${id}"]=1
+		echo "Multiple matches for: ${id}" 1>&2
+		ls -lhtQ "${id}"*
+		sudo chattr -i "${id}"*
+		touch "${id}"*
 	fi
 	fi
 done< <(find . -type f -path '*Season*' -name '[0-9]*.*' -print0)
 done< <(find . -type f -path '*Season*' -name '[0-9]*.*' -print0)