如何创建“查找”命令来查找损坏的 *.pages、*.key 和 *.numbers 文件?

如何创建“查找”命令来查找损坏的 *.pages、*.key 和 *.numbers 文件?

我有 3 种类型的文件,分别为*.pages*.key*.numbers

  1. 未损坏的文件:一切还好。
  2. 损坏文件类型 I:相应的程序可以显示文本,但是所有图像都丢失了。
  3. 损坏文件类型 II:相应的程序无法再打开该文件。

我想要创建两个.txt文件,一个列出所有具有 I 型损坏的文件的路径,另一个列出所有具有 II 型损坏的文件的路径。

我想出了这个find命令,它为我提供了一个文件类型-II.txtII 型损坏文件的完整路径:

find . \( -name "*.pages" -or -name "*.numbers" -or -name "*.key" \) -and -size 102c > type-II.txt

我想出了另一个find命令,它为我提供了一个文件类型I和II.txt包含 I 类和 II 类损坏文件的完整路径

find . -type f -name "Properties.plist" > type-I-and-II.txt

在终端中使用什么命令来提供文件类型I.txt仅列出 I 类损坏文件的路径?

答案1

文件类型-II.txtlisting 是路径和文件名,例如./document.pages。如果在类型I和II.txt列表它被列为./document.pages/Metadata/Properties.plist

使用此命令创建类型I.txt列出了文件类型I和II.txt未列出的类型-II.txt

sed 's|/Metadata/Properties.plist$||' type-I-and-II.txt | sort - type-II.txt | uniq -u > type-I.txt

sed命令从文件名中删除“/Metadata/Properties.plist”类型I和II.txt列表。命令的输出sed将传递给sort命令。sort命令将两个文件合并为一个排序列表。命令uniq仅选择排序列表中出现一次的文件,即类型I和II.txt但不是在类型-II.txt

相关内容