如何在shell中测试wc -l是偶数还是奇数?

如何在shell中测试wc -l是偶数还是奇数?

假设我有一个名为 file1 的文件

$ a=$(wc -c file1)
$ echo $a
233 file1

现在我该怎么做

$ b=$(expr $a % 2)
$ echo $b
1

我猜 wc -c make 中的 file1 会导致崩溃吗?

答案1

我会使用类似的东西:

if [ $(( $(wc -c < your-filehere ) % 2)) -eq 1 ]
then 
  echo file has odd number of bytes
else 
  echo file has even number of bytes
fi

答案2

删除文件名的另一种方法wc是使用wc -c <file1.这避免了第二道工序的需要cat

答案3

一种方法是:

a=$(cat file1 | wc -c)

这不会输出文件名,您expr将可以工作。

相关内容