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ループ