需要开始在bash中创建脚本,这是我以前从未有过的,所以请原谅,如果我对某些事情一无所知,那对你们中的一些人来说可能是显而易见的。
使用bash脚本(.sh)我需要获得一堆与某个命名模式匹配的文件,并确定它们是否为空。
我知道我可以使用-s FILE
代码检查文件是否为空,但是如何在目录中循环遍历文件并检查它。
例如,我需要获取目录中与模式*Export*UK*.csv
匹配的所有文件,并检查每个文件是否为空,因此在伪代码中
if [[ -s FILE_NAME_HERE ]]
then
# file is not empty, do this
else
# file is empty, do that instead
fi
答案 0 :(得分:3)
你可以使用test -s $file
(又名[ -s $file ]
)返回"如果文件存在且大小大于零,则为真#34;要遍历文件,您需要以下内容:
for file in /your/base/directory/*Export*UK*.csv; do
if [ -s "$file" ]; then
# non-empty
else
# empty
fi
done
如果这些文件位于当前目录中,您可以用for file in *Export*UK*.csv
替换绝对路径。
答案 1 :(得分:1)
尝试find
-
find ~/location -print0 -type f -name "*Export*UK*.csv" -empty | xargs -0 **do this**
find ~/location -print0 -type f -name "*Export*UK*.csv" -not -empty | xargs -0 **do that instead**
当然使用if
循环更好,但这是另一种方式。