终端命令'找到'从txt文件中读取

时间:2014-10-20 08:55:06

标签: text terminal find command

我想从目录中找到所有.html文件,但忽略一些文件。

$ find /Volumes/WORKSPACE/MyProject/ -name '*.html' ! -name 'MyFile.html' 

以上命令仅忽略MyFile.html。但是,我有一个要忽略的文件列表,并希望在单个txt文件中维护忽略文件。

MyFile1.html    
MyFile1.html
MyFile2.html
MyFile2.html

以上是txt文件内容。

我想将要忽略的文件列表保存在单个txt文件中,并在find命令中使用txt文件。

请指教。提前谢谢。

1 个答案:

答案 0 :(得分:2)

您必须从文件中构建类似数组的内容,然后在find语法中使用它。即。

#!/bin/bash
while IFS= read -r file; do
  arr+=(-name "$file" -o)
done < list_of_filenames_to_omit.txt

#remove trailing -o
unset arr[$((${#arr[@]}-1))]

if ((${#arr[@]}!=0)); then
  find /Volumes/WORKSPACE/MyProject/ -name '*.html' ! \( "${arr[@]}" \)
else
  #list_of_filenames_to_omit.txt is empty
  find /Volumes/WORKSPACE/MyProject/ -name '*.html' 
fi