unix - 获取文件大小并根据大小分割文件

标签 unix ksh

我正在写一个 korn 脚本。我想获取文件的大小并将其存储在脚本中的变量中。我不知道如何将大小数字放入变量中,例如如果文件大小为 5GB,则变量中必须有 5。

此外,如果文件大小超过 5GB,则应将其拆分为 2GB 文件。

示例: 假设文件名为 File1,大小为 5.6GB。然后该文件应分为 3 个文件,文件的命名应为 File1、File2、File3

谁能帮帮我吗?

最佳答案

您可以使用du -BG <file>获取以 GB 为单位的大小。

因此,您可以这样做:

size=$(du -BG your_file | cut -dG -f1)

然后

[ $size -ge 3 ] && split -d -b2G your_file file

这将给出类似的文件

file00
file01

说明

[ $size -ge 3 ]            &&   split -d -b2G your_file file
----------------------------------------------------------------------
  condition of size         split your_file in blocks of 2GB (-b2G)
     >=3 GB                 with name "file" with numerical suffix (-n)

关于unix - 获取文件大小并根据大小分割文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17592725/

相关文章:

java - 是否有用于管理 UNIX ACL 的 Java 接口(interface)

linux - 文件命令 108k 文件 : Too Many Args

linux - 通过取消设置禁用功能

java - Unix 脚本 : accessing required . 耳文件(按文件名掩码)

linux - 如何将表的每条记录加载到单独的文件中?

regex - Shell/AWK - 它不显示值,以及如何添加 reg exp

linux - 如何使用 awk 修改文本字段?

linux echo/print 在打印多个变量时删除字符串中的 1 个空格

shell - 如何在 korn shell 中转义逗号?

linux - 可以使用未添加到选择集中的描述符调用 FD_ISSET 吗?