Linux에서 어려운 문제에 직면했습니다. 4로 나누어지는 숫자를 인쇄해야 합니다.
다음 코드는 짝수를 인쇄하는 데 도움이 되지만 4로 나눌 수는 없습니다.
echo 5 | awk -F, '$0%2{$0++}1'
산출:
6
이 문제를 해결하는 방법을 모르겠지만 while 루프를 사용하여 값을 4로 나눌 수 있을 때까지 초기 값을 추가/증가시킨 다음 사용할 수 있는 변수에 값을 삽입하면 됩니다.
예를 들어:
val=5
5/4= 1.25 not divisible
val=val+1
val=6
6/4= 1.5 not divisible
val=val+1
val=7
7/4= 1.75
val=val+1
val=8
8/4=2 is divisible
값이 4로 나누어지면 이 예의 값 8은 4로 나누어지는 답 대신 출력 변수에 에코됩니다.
답변1
그리고 awk
:
echo 5 | awk '{$0=int($0/4+1)*4}1'
설명하다:
$0/4+1
값이 나누어4
지고 결과가 증가합니다1
.int(n)
그런 다음 awks로 반올림됩니다.int()
.n*4
4
이제 우리는 나누어질 수 있는 다음으로 큰 숫자를 얻기 위해 그것을 곱하면 됩니다4
.{...}1
마지막1
것은 값을 인쇄합니다.
16
그러면 값이 인쇄됩니다 12
.
나눌 수 있을 때 값을 일정하게 유지하려면 4
다음을 대신 사용하십시오 awk
.
awk '{$0=int($0/4+.75)*4}1'
답변2
#!/bin/bash
i=5
while [ 1 ]
do
if [ `echo $i%4 | bc` -eq 0 ]; then
echo $i
exit
else
i=`echo $i+1|bc`
fi
done
이 스크립트를 사용해 보세요while 루프