簡體   English   中英

比較具有相同名稱的文件

[英]Compare files with the same name

我創建了腳本來比較文件夾中的文件(名稱為.jpg,但沒有名稱,但名稱相同)。腳本在ONE目錄而不是SubDirectories中搜索文件的問題!如何解決?

for f in *
do
  for n in *.jpg
do
tempfile="${n##*/}"
    echo "Processing"
echo "${tempfile%.*}"
echo "$f"
  if [[ "${tempfile%.*}" = $f ]]
then
  echo "This files have the same name!"
//do something here
else
echo "No files"
  fi
done
done

對於關聯數組,這需要bash版本4。

shopt -s globstar nullglob extglob
declare -A jpgs

for jpg in **/*.jpg; do 
    name=$(basename "${jpg%.jpg}")
    jpgs["$name"]=$jpg
done

for f in **/!(*.jpg); do 
    name=$(basename "$f")
    if [[ -n ${jpgs["$name"]} ]]; then 
        echo "$f has the same name as ${jpgs["$name"]}"
    fi
done

您也可以嘗試使用find

find . -type f -name "*.sh" -printf "%f\n" | cut -f1 -d '.' > jpg.txt

while read line
do
  find . -name "$line.*" -print
done < jpg.txt

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM