比较shell脚本中的文件大小

时间:2011-11-12 23:06:00

标签: linux shell sh

我正在尝试比较shell脚本中两个文件的大小,但我得到一个测试:32:8:意外操作符错误。

I=`wc -c $i | cut -d' ' -f1`
J=`wc -c $j | cut -d' ' -f1`
if test $I == $J
then
      echo $i $j >> $1.pares
fi

我使用echo测试$ I和$ J中的值,值是正确的但是我无法比较它们......

4 个答案:

答案 0 :(得分:4)

这适用于bash

if((`stat -c%s "$file1"`==`stat -c%s "$file2"`));then
  echo "do something"
fi

答案 1 :(得分:2)

尝试使用方括号([])和-eq,如下所示:

I=`wc -c $i | cut -d' ' -f1`
J=`wc -c $j | cut -d' ' -f1`
if [ $I -eq $J ]
then
      echo $i $j >> $1.pares
fi

答案 2 :(得分:0)

尝试

I=`wc -c "$i"` # always use quoted var
J=`wc -c "$j"`
[[ "$I" == "$J" ]] && echo "$i" "$j" >> "$1".pares

始终引用变量,因为您可以拥有包含空格的文件名。

尽管BASH对变量名称不区分大小写,但对变量使用不同的(并且长于一个char)名称会更好更安全。

答案 3 :(得分:0)

这样的事情可以起作用......

#/bin/bash <br>
I=`wc -c < echo $i`
J=`wc -c < echo $j`

if [ $I -eq $J ]; then

 echo $i $j >> $1.pares

fi

拥抱!