
我有 3 種類型的文件,類型為*.pages
、*.key
和*.numbers
。
- 未損壞的檔案:一切還好。
- 損壞的檔案類型 I:相應的程式可以顯示文本,但所有圖像都會遺失。
- 損壞的檔案類型 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。