遍历目录中的所有 *.js 文件,跳过 bash 脚本中的 *.spec.js 文件
Loop over all *.js files in a directory skipping *.spec.js files in bash script
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
您正在寻找查找的否定 !
功能,以不匹配具有特定名称的文件。我认为另外使用 wholename
应该更快。
find . ! -name '*.spec*'
因此您的最终命令(未测试)将是:
find . -type f ! -name '*.js' -wholename '*.php'
这是您要查找的代码:
find . -type f \( -iname "*.js" -not -iname "*.spec.js" \)
只需添加一个条件来实现您不需要特定的文件名模式:
FILES=`find . -type f -name '*.js'`
for file in $FILES
do
if [[ $file != *.spec.js ]]; then
echo $file
fi
done
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
您正在寻找查找的否定 !
功能,以不匹配具有特定名称的文件。我认为另外使用 wholename
应该更快。
find . ! -name '*.spec*'
因此您的最终命令(未测试)将是:
find . -type f ! -name '*.js' -wholename '*.php'
这是您要查找的代码:
find . -type f \( -iname "*.js" -not -iname "*.spec.js" \)
只需添加一个条件来实现您不需要特定的文件名模式:
FILES=`find . -type f -name '*.js'`
for file in $FILES
do
if [[ $file != *.spec.js ]]; then
echo $file
fi
done