如何检查一个数字是否高于或低于另一个数字?

如何检查一个数字是否高于或低于另一个数字?

我有包含 2 个数字的文件,如下所示:

文件1

1
0

文件2

0
1

文件3

3
3

我想将第一行的数字与第二行的数字进行比较。如果第一行的数字较大 echo :Higher 如果第一行的数字较小 echo :Lower 如果两行的数字相同 echo :Same

我怎样才能做到这一点?

答案1

循环遍历文件。对于每个文件,读取两个数字,然后比较它们:

for file in file1 file2 file3; do
    { read num1; read num2; } <"$file"
    if [ "$num1" -gt "$num2" ]; then
        echo Higher
    elif [ "$num1" -lt "$num2" ]; then
        echo Lower
    else
        echo Same
    fi
done

shell 中的算术比较是通过-gt和完成的-lt。其他算术比较运算符是-ge,-le-eq。看man test。运算符<>将测试字典顺序,并且不会是您想要在此处使用的。

或者,与awk

awk -v RS='' -F '\n' '{ print ($1 > $2 ? "Higher" : ($1 < $2 ? "Lower" : "Same")) }' file1 file2 file3

相关内容