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

标签 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

最佳答案

您可以使用 test -s $file(又名 [ -s $file ])返回“如果文件存在且大小大于零则为真”。要遍历文件,您需要类似以下内容:

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 替换绝对路径。

关于linux - bash shell 检查每个文件的空大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39393240/

相关文章:

c++ - 从 C++ 应用程序将源命令传递给 bash 时出现问题

ruby - 在 Ruby 中将目录添加到加载路径的末尾?

java - 在 Runtime.getRuntime().exec() 中出现错误 :/bin/bash: No such file or directory

shell脚本语法错误: Unexpected End of File

php - 运行时./a.out(c编译代码)的退出状态

linux - 为什么 "yes yes | ssh hostname"不能自动对主机 key 身份验证回答是?

linux - 在用户提示检查中使用多行 ssh 命令时出现 Shell 错误

linux - 如何知道nc使用的源ip地址连接到目的地

linux - 如何使用 Inkscape 将带有汉字的 SVG 导出为 PNG?

c++ - 创建命令并通过 Linux 终端执行它们