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

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

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

find . -type f -name *.pdf

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

3 ответа

Решение
#!/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 [*]}")

ура Ник

Другие вопросы по тегам