如何批量删除目录中仅包含一行的所有文件?

如何批量删除目录中仅包含一行的所有文件?

我使用数据恢复程序恢复了一堆被覆盖的文本,而我想要的内容(被覆盖文件的先前版本)隐藏在数千个、和.txt文件.json中。.h.html

这些不需要的文件中大多数只包含一行乱码文本(即使它们大小达数兆字节),因此拥有一个可以快速识别这些文件并消除它们的工具会很有用。

(背景:我想要的部分文本已在这些恢复的文件中找到,有时是在截断的代码行或完全的垃圾中找到的。没有只包含一行的文件包含我想要的文本,因此我希望删除这些文件。)

答案1

您用photorec它来进行恢复了,不是吗?

你没有指定操作系统,但我假设Linux反正。

保存脚本至/root/removebadfiles.sh(和chmod +x /root/removebadfiles.sh):

#!/bin/bash
file="$@"
lines=$(wc -l "$file" 2>/dev/null | awk '{print $1}');
if [ "$lines" = "1" ]; then 
  echo "$file"; 
  rm "$file"; 
fi

递归单行:

cd /path/to/files
find -type f -exec /root/removebadfiles.sh {} \;

相关内容