Unix 获取文件大小并根据大小拆分文件

Unix 获取文件大小并根据大小拆分文件,unix,ksh,Unix,Ksh,我在写一个可兰经剧本。我想获得文件的大小并将其存储在脚本中的变量中。我不知道如何将大小数字输入变量,比如如果文件大小为5GB,那么变量中必须有5 此外,如果文件大小超过5GB,则应将其拆分为2GB文件 例如: 假设文件名为File1,大小为5.6GB。然后该文件应分为3个文件,文件的命名应为File1、File2、File3 有人能帮我吗?你可以使用du-BG来获取GB大小 因此,您可以: size=$(du -BG your_file | cut -dG -f1) 然后 [ $size -g

我在写一个可兰经剧本。我想获得文件的大小并将其存储在脚本中的变量中。我不知道如何将大小数字输入变量,比如如果文件大小为5GB,那么变量中必须有5

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

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

有人能帮我吗?

你可以使用
du-BG
来获取GB大小

因此,您可以:

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

[ $size -ge 3 ] && split -d -b2G your_file file
这将提供像这样的文件

file00
file01
解释
它仍然同时显示文件大小和文件名。我只需要变量中没有名称的文件大小请参见我的
size
var定义,其中I
cut
基于
G
.ok。。。。我试过这个。。。。似乎我得到了大小
du-h experience.psv|awk'{print$1}
现在我可以将输出分配给变量“size”。但是这个命令的输出是4.0G。我的要求是检查文件大小。如果文件大于3GB,则应将其拆分为2GB文件。字符“G”将被标记为数字。在这种情况下,我如何比较??这个问题又出现了。。。。如果文件是MB,比如834MB,那么大小变量包含834.0M。请检查我的答案,因为我已经深入研究了
|cut-dG-f1
G
问题。我现在已经更改了方法。现在我正在使用
stat-c%s
。。。。。。。。这将以字节为单位显示文件的大小。文件正在被拆分。现在只剩下文件名了。拆分后,文件将拆分为3个文件,分别命名为xaa、xab、xac。但是我想要文件名为File1,File2,File3
[ $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)