破損した *.pages、*.key、*.numbers ファイルを見つけるための「検索」コマンドを作成するにはどうすればよいですか?

破損した *.pages、*.key、*.numbers ファイルを見つけるための「検索」コマンドを作成するにはどうすればよいですか?

*.pages*.key、の 3 種類のファイルがあります*.numbers

  1. 破損していないファイル:すべてOKです。
  2. 破損したファイルタイプ I:対応するプログラムはテキストを表示できますが、画像はすべて失われます。
  3. 破損したファイル タイプ II:対応するプログラムがファイルを開けなくなる場合。

.txtタイプ I の破損があるすべてのファイルのパスをリストするファイルと、タイプ II の破損があるすべてのファイルのパスをリストするファイルの2 つを作成したいと思います。

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に渡されますsortsortコマンドは両方のファイルをソートされたリストに結合します。コマンドはuniqソートされたリストに一度だけ出現するファイル、つまりタイプIおよびII.txtしかし、タイプII.txt

関連情報