首页 > 解决方案 > Bash shell 脚本从文件名中查找丢失的文件

问题描述

我有一个应包含 1485 个文件的文件夹,名为 PA0001.png、PA0002.png ... 直至 PA1485.png

其中一些丢失了,我想编写一个能够识别丢失的shell脚本并将它们作为列表打印在 .txt 文件中(最好没有前导字符串 PA 和 .png 扩展名,但使用前导零(如果有)

我不知道如何继续,也许使用awk?但我仍然是一个菜鸟......任何帮助将不胜感激!

标签: bashshellscripting

解决方案


您可以使用 bash 循环获取丢失文件的序列号列表

# Redirect output, per answer
exec > file.txt
for ((i=1 ; i<=1485 ; i++)) ; do
   # Convert to 4 digit zero padded
   printf -v id '%04d' $i
   if [ ! -f "PA$id.png" ] ; then
       echo $id
   fi
done

推荐阅读