我想从目录中找到所有.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文件。
请指教。提前谢谢。
答案 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