linux:从txt列表中查找文件,文件包含空格

linux:从txt列表中查找文件,文件包含空格

我需要从 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

相关内容