如何建立「尋找」命令來尋找損壞的 *.pages、*.key 和 *.numbers 檔案?

如何建立「尋找」命令來尋找損壞的 *.pages、*.key 和 *.numbers 檔案?

我有 3 種類型的文件,類型為*.pages*.key*.numbers

  1. 未損壞的檔案:一切還好。
  2. 損壞的檔案類型 I:相應的程式可以顯示文本,但所有圖像都會遺失。
  3. 損壞的檔案類型 II:對應的程式無法再開啟文件。

我想創建兩個.txt文件,一個列出所有具有 I 類損壞的文件的路徑,另一個列出所有具有 II 類損壞的文件的路徑。

我想出了這個find命令,它為我提供了一個文件類型II.txt帶有 II 類損壞檔案的完整路徑:

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.txt列表是路徑和檔名,例如./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

相關內容