FILES=`find . -type f -name '*.js'`
for file in $FILES
do
# some task
done
这将循环遍历所有* .js文件,但是我们想要跳过一些 .spec.js 文件。
a.js
a.spec.js
b.js
x.spec.js
c.js
应该迭代:
a.js
b.js
c.js
答案 0 :(得分:3)
这是您要查找的代码:
find . -type f \( -iname "*.js" -not -iname "*.spec.js" \)
答案 1 :(得分:0)
您正在寻找查找的否定!
功能,使其与特定名称的文件不匹配。另外,我认为使用wholename
应该更快。
find . ! -name '*.spec*'
所以你的最终命令(未经测试)将是:
find . -type f ! -name '*.js' -wholename '*.php'
答案 2 :(得分:0)
只需添加一个实现不想要特定文件名模式的条件:
FILES=`find . -type f -name '*.js'`
for file in $FILES
do
if [[ $file != *.spec.js ]]; then
echo $file
fi
done