减去两个文件大小的脚本

我想减去两个文件的大小。我找到了这些文件的位置,然后使用了命令:

du -h /bin/ip | cut -d "K" -f1 

我有508,我想创建变量

x=$((du -h /bin/ip | cut -d "K" -f1))

但结果我得到了

  

“-bash:du -h / bin / ip | cut -d'K'-f1:除以0(错误标记为” bin / ip | cut -d'K'-f1“))

我做错了什么?如何将这个值放入变量?

fandongdong888 回答:减去两个文件大小的脚本

  

我做错了什么?

您使用了arithmetic expansion $(( ... ))而不是command substitution $( ... )。结果,shell将/bin解释为/作为除法,将bin解释为0(因为没有名为bin的变量),并试图除以0。

  

如何将该值放入变量中?

使用命令替换:

x=$(du -h /bin/ip | cut -d "K" -f1)

但是使用stat收集有关文件的信息会更加可靠:

x=$(stat -c %s /bin/ip)

要减去两个文件的大小,您可以再次使用命令替换来获取大小,但使用算术扩展来计算差异。

difference=$(( $(stat -c %s file1) - $(stat -c %s file2) ))
,

抢救Perl!

perl -le 'print((-s "file1.txt") - (-s "file2.txt"))'
  • -l将换行符添加到print
  • -s返回文件大小(请参见-x
本文链接:https://www.f2er.com/3156040.html

大家都在问