我有包含 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