2

У меня есть 3 типа файлов типа *.pages , *.key и *.numbers .

  1. Неповрежденные файлы: все в порядке.
  2. Поврежденные файлы типа I: где соответствующая программа может отображать текст, но все изображения теряются.
  3. Поврежденные файлы типа II: где соответствующая программа больше не может открывать файлы.

Я хотел бы создать два файла .txt , один из которых содержит путь ко всем файлам с повреждением типа I, а другой - путь ко всем файлам с повреждением типа II.

Я пришел с этой командой find которая предоставляет мне файл type-II.txt с полным путем к файлам повреждения типа II:

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

И я придумала эту другую команду find предоставляет мне файл type-I-and-II.txt с полным путем к файлам типа I и типа II.

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

Какая команда будет использоваться в терминале для предоставления файла type-I.txt с указанием пути только поврежденных файлов типа I?

1 ответ1

0

Файл в списке type-II.txt представляет собой путь и имя файла, например, ./document.pages . Если этот же файл присутствует в списке типов I-and-II.txt, он отображается как ./document.pages/Metadata/Properties.plist .

Используйте эту команду для создания type-I.txt, который перечисляет файлы в type-I-and-II.txt , которые не перечислены в type-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» из имен файлов в листинге type-I-and-II.txt. Выходные данные команды sed передаются команде sort . Команда sort объединяет оба файла в отсортированный список. Команда uniq выбирает только файлы, которые встречаются один раз в отсортированном списке, то есть файлы, перечисленные в типе-I-and-II.txt, но не в типе-II.txt.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .