¿Cómo crear un comando "buscar" para encontrar archivos * .pages, * .key y * .numbers dañados?

2

Tengo 3 tipos de archivos de tipo *.pages, *.keyy *.numbers.

  1. Archivos sin corrupción: todo bien.
  2. Archivos dañados tipo I: donde el programa correspondiente puede mostrar el texto, pero se pierden todas las imágenes.
  3. Archivos corruptos tipo II: donde el programa correspondiente ya no puede abrir los archivos.

Me gustaría crear dos .txtarchivos, uno con la ruta de todos los archivos con corrupción tipo I y otro con la ruta de todos los archivos con corrupción tipo II.

Se me ocurrió este findcomando que me proporciona un archivo tipo II.txt con la ruta completa de los archivos de corrupción tipo II:

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

Y se me ocurrió este otro findcomando que me proporciona un archivo tipo-I-y-II.txt con la ruta completa de los archivos de corrupción tipo I y tipo II

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

¿Cuál sería el comando que se usará en el terminal para proporcionar un archivo tipo I.txt que enumere la ruta de acceso de los archivos corruptos de tipo I?

wba
fuente

Respuestas:

0

Un archivo en el tipo II.txt lista es un nombre de archivo y la ruta, por ejemplo, ./document.pages. Si el mismo archivo aparece en la lista tipo-I-y-II.txt , aparece como ./document.pages/Metadata/Properties.plist.

Use este comando para crear type-I.txt que enumera los archivos en type-I-and-II.txt que no están listados en type-II.txt :

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

El sedcomando elimina "/Metadata/Properties.plist" de los nombres de archivo en la lista type-I-and-II.txt . La salida del sedcomando se pasa al sortcomando. El sortcomando combina ambos archivos en una lista ordenada. El uniqcomando selecciona solo los archivos que aparecen una vez en la lista ordenada, es decir, los archivos enumerados en type-I-and-II.txt pero no en type-II.txt .

Creidhne
fuente
¿Para qué sirve $after the Properties.plist y qué tiene -after sortpara una función?
wba
El $le dice sedque solo coincida con las líneas que terminan con "/Metadata/Properties.plist". El sedy los sortcomandos están conectados por un tubo ( |), de salida de modo estándar a partir de sedes la entrada estándar a sort. Le -dice sort - type-II.txtque lea la entrada estándar y el archivo tipo-II.txt .
creidhne