Мне нужно найти файлы из списка в 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 [*]}")
приветствует Ник