Извлечь несопоставленные файлы в каталоге, используя текстовый файл - PullRequest
1 голос
/ 10 октября 2019

У меня есть 100 файлов в каталоге и текстовый файл, в котором перечислены 35 из этих файлов.

####Directory 
apple carrot orange pears bananas

###text file
apple
carrot
orange 

Я хотел бы использовать этот текстовый файл с именами файлов и сравнить в каталоге, чтобы получить несопоставленные имена файлов в отдельный файл. Таким образом, это будет файл, который выглядит следующим образом:

##unmatched text file
pears
bananas

Я знаю, чтобы сделать это с помощью поиска, если поисковый термин был конкретной строкой, но не смог выяснить это

1 Ответ

3 голосов
/ 11 октября 2019

Предположим, что текстовый файл содержит подмножество файлов в каталоге. Также предположим, что файл называется list.txt, а каталог - dir1, тогда будет работать следующее:

(cat list.txt; ls -1 dir1) | sort | uniq -u

Пояснения

  • Команда (cat list.txt; ls -1 dir1) запускает подпрограммуshell, выполняет команды cat и ls
  • Объединенный вывод затем сортируется и uniq -u выбирает уникальные (не дублированные)

IВерьте, это то, что вы хотите. Если это работает, вы можете перенаправить в другой файл:

(cat list.txt; ls -1 dir1) | sort | uniq -u > list2.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...