Назад | Перейти на главную страницу

linux: найти файлы из списка в txt, файлы содержат пробелы

Мне нужно найти файлы из списка в txt (у меня уже есть txt со всеми файлами, разделены строками), файлы содержат пробелы, а расширение файлов - pdf, если вы можете предложить, как сделать вывод команду или сценарий в другой текстовый файл.

Что я пробую (этот извлекает все файлы в каталоге и содержит пробелы, но только существующие, мне тоже нужно найти несуществующие):

find . -type f -name *.pdf

Заранее благодарю за любую помощь.

#!/bin/bash
while read -r FILE
do
  FOUND="$(find . -name "$FILE" -print -quit)"
  if [ "x$FOUND" != "x" ]
  then
    echo "FOUND: $FILE"
  else
    echo "NOT FOUND: $FILE"
  fi
done <filelist.txt

Это сложнее, чем кажется

while read -r file
do
    find . -name "$file"
done <txt

найдет существующие файлы и напечатает для них полный путь. К сожалению найти наборы $? к 0 (УСПЕХ), даже если файл не найден.

Могу я попытаться понять ваш вопрос.

У вас есть список, содержащий имена файлов, которые вы ищете. А вам нужен список файлов, которых еще нет?

Это правильно?

Итак, если TEST - это файл, содержащий ваш список поиска, вы можете использовать это:

ALIST = $ (cat TEST | sort); BLIST = $ (ls -1 | sort); comm -3 <(echo "$ {ALIST [*]}") <(echo "$ {BLIST [*]}")

приветствует Ник