Wie erstelle ich einen „Suchen“-Befehl zum Auffinden beschädigter *.pages-, *.key- und *.numbers-Dateien?

Wie erstelle ich einen „Suchen“-Befehl zum Auffinden beschädigter *.pages-, *.key- und *.numbers-Dateien?

Ich habe drei Dateitypen vom Typ *.pages, *.keyund *.numbers.

  1. Unbeschädigte Dateien:alles ok.
  2. Beschädigte Dateien vom Typ I:Wobei das entsprechende Programm zwar den Text darstellen kann, jedoch sämtliche Bilder verloren gehen.
  3. Beschädigte Dateien Typ II:Wobei das entsprechende Programm die Dateien nicht mehr öffnen kann.

Ich möchte zwei .txtDateien erstellen, eine mit dem Pfad aller Dateien mit Beschädigungen des Typs I und eine mit dem Pfad aller Dateien mit Beschädigungen des Typs II.

Ich habe diesen Befehl gefunden find, der mir eine Datei bereitstelltTyp-II.txtmit dem vollständigen Pfad der Dateien mit Beschädigungen des Typs II:

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

Und ich bin auf diesen anderen Befehl gestoßen, findder mir eine Datei bereitstelltTyp-I-und-II.txtmit dem vollständigen Pfad von Dateien mit Beschädigungen vom Typ I und Typ II

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

Welcher Befehl muss im Terminal verwendet werden, um eine Datei bereitzustellen?Typ-I.txtNur den Pfad beschädigter Dateien vom Typ I auflisten?

Antwort1

Eine Datei imTyp-II.txtAuflistung ist ein Pfad und Dateiname, zum Beispiel ./document.pages. Wenn die gleiche Datei in derTyp-I-und-II.txtIn der Auflistung ist es aufgeführt als ./document.pages/Metadata/Properties.plist.

Mit diesem Befehl erstellen SieTyp-I.txtdas Dateien auflistet inTyp-I-und-II.txtdie nicht aufgeführt sind inTyp-II.txt:

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

Der sedBefehl entfernt "/Metadata/Properties.plist" aus den Dateinamen in derTyp-I-und-II.txtAuflistung. Die Ausgabe des sedBefehls wird an den sortBefehl übergeben. Der sortBefehl kombiniert beide Dateien zu einer sortierten Liste. Der uniqBefehl wählt nur die Dateien aus, die einmal in der sortierten Liste vorkommen, d. h. Dateien, die inTyp-I-und-II.txtaber nicht inTyp-II.txt.

verwandte Informationen