다음과 같은 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
쉘의 산술 비교는 -gt
및 를 통해 수행 됩니다 -lt
. 다른 산술 비교 연산자로는 -ge
, -le
및 가 있습니다 -eq
. 바라보다 man test
. 연산자 <
및는 >
사전식 순서를 테스트하며 여기서 사용하려는 것이 아닙니다.
또는 다음을 사용하여 awk
:
awk -v RS='' -F '\n' '{ print ($1 > $2 ? "Higher" : ($1 < $2 ? "Lower" : "Same")) }' file1 file2 file3