我需要从 txt 中的列表中查找文件(我已经有包含所有文件的 txt,用线分隔),文件包含空格并且文件扩展名是 pdf,如果您可以建议如何将命令或脚本输出到另一个 txt 文件。
我尝试了(这个检索目录中的所有文件并包含空格,但只有现有的文件,我也需要找到不存在的文件):
find . -type f -name *.pdf
提前感谢任何帮助。
答案1
#!/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
答案2
这比想象的要难
while read -r file
do
find . -name "$file"
done <txt
将查找存在的文件并打印它们的完整路径。不幸的是,即使未找到文件, find 也会设置$?
为(SUCCESS)。0
答案3
我可以尝试理解一下你的问题吗?
您有一个包含要搜索的文件名的列表。您想要一个尚不存在的文件列表吗?
那是对的吗?
因此假设 TEST 是包含您的搜索列表的文件,那么您可以使用以下命令:
ALIST=$(cat TEST | sort);BLIST=$(ls -1 | sort);comm -3 <( echo "${ALIST[*]}" ) <( echo "${BLIST[*]}" )
欢呼 Nick