ある数字が他の数字よりも高いか低いかを確認するには?

ある数字が他の数字よりも高いか低いかを確認するには?

次の2つの数字を含むファイルがあります。

ファイル1

1
0

ファイル2

0
1

ファイル3

3
3

1行目の数字と2行目の数字を比較したいです。最初の行の数字が大きい場合は echo:Higher 最初の行の数字が小さい場合は echo: Lower 2 行の数字が同じ場合は echo:Same

どうすればいいですか?

答え1

ファイルを繰り返します。各ファイルについて2つの数字を読み、比較します。

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

シェルの算術比較は-gtと で行われます-lt。他の算術比較演算子には-ge、、-leとがあります-eq。望むよりman test。演算子<とは>辞書式の順序をテストし、ここで使用するものではありません。

または以下を使用してawk

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

関連情報