bash shell检查每个文件的空白大小

时间:2016-09-08 14:12:19

标签: linux bash shell

需要开始在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

2 个答案:

答案 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循环更好,但这是另一种方式。