タグ付けされた質問 「arithmetic」

このタグは、数学演算に関連するすべてのものを対象としています。したがって、 `awk`での計算について質問したい場合、または` bc`について質問したい場合は、これが適切なタグです。

16
bashまたは他の言語/フレームワークで整数と浮動小数点の計算を行う方法は?
echo "20+5"文字通りに使用すると、テキスト「20+5」が生成されます。 25この場合、数値の合計を取得するためにどのコマンドを使用できますか? また、浮動小数点にbashを使用するだけの簡単な方法は何ですか?たとえば、:(をecho $((3224/3807.0))出力し0ます。 基本的なコマンドシェル(「コマンドライン」)自体を使用するか、コマンドラインから使用可能な言語を使用して回答を探しています。

18
単一のコマンドで数値のリストの最小、最大、中央値、平均を取得する方法はありますか?
ファイルには、1行に1つずつ番号のリストがあります。最小値、最大値、中央値、平均値を取得するにはどうすればよいですか?結果をbashスクリプトで使用したい。 私の当面の状況は整数の場合ですが、浮動小数点数の解決策は将来的には有用ですが、単純な整数法で十分です。
93 bash  awk  arithmetic  bc 


3
Bash:ダブルイコールvs -eq
私はbashで整数比較を行っています(ユーザーがrootとして実行されているかどうかを確認しようとしています)、それを行う2つの異なる方法を見つけました: 二重に等しい: if [ $UID == 0 ] then fi -eq if [ $UID -eq 0 ] then fi 私は> =または<bashで、唯一-geと-le、なぜそこにある=があることを理解していない==があるかどう-eq? 両側を比較する方法に違いはありますか?
47 bash  shell  arithmetic 

6
ブレース展開を使用して先行ゼロでシーケンスを作成する方法
次を使用すると、期待どおりの結果が得られます。 $ echo {8..10} 8 9 10 このブレース拡張を簡単な方法で使用して、次の出力を取得するにはどうすればよいですか? $ echo {8..10} 08 09 10 これはseq(試してはいませんが)使用して取得できるかもしれませんが、それは私が探しているものではありません。 有用な情報は、私がこのbashバージョンに制限されていることです。(zsh解決策はあるがbash解決策がない場合は、共有してください) $ bash -version GNU bash, version 3.2.51(1)-release (x86_64-suse-linux-gnu)

4
「日付」の出力から先行ゼロを削除する、またはそのような10進数の8進解釈を回避するにはどうすればよいですか?
私はこれを持っています: date +"%H hours and %M minutes" 私はフェスティバルを使ってそれを言います..しかし、それは「ゼロ9時間」のように言います。 しかし、日付は常に私に09を与えます...だから、bashはそれを簡単に9にすることができますか? 私が試した複雑なスクリプトで printf %d 09 しかし、失敗します.. 8進数ではありません:( 何か案が?
37 bash  shell  date  arithmetic 

2
bashでドル記号の後に角括弧$ […]が続くとはどういう意味ですか?
の$[expr]ように算術展開を実行するよう$((expr))です。しかし$[、bashのマニュアルには言及がありません。このコマンドでは結果が得られません。 gunzip -c /usr/share/man/man1/bash.1.gz | grep -E '\$\[' この演算子は何であり、その動作はどこでも標準化されていますか? 私のbashバージョン:GNU bash、バージョン3.2.51(1)-release(x86_64-apple-darwin13)
34 bash  arithmetic 

8
bash関数を使用してコマンドラインで簡単な計算を行う:$ 1を$ 2で除算(おそらくbcを使用)
ある数字を別の数字で割る必要がある場合があります。このためにbash関数を定義することができれば素晴らしいと思います。これまでのところ、私は次のような式を使用することを余儀なくされています echo 'scale=25;65320/670' | bc しかし、次のような.bashrc関数を定義できたら素晴らしいと思います divide () { bc -d $1 / $2 }

5
$ REPLYが数値の範囲内にあるかどうかを確認します
Bashを使用してLinux用のシェルスクリプトを作成し、ビデオファイルをMP4に変換しています。そのために、私はavconvwith libvorbisfor audio を使用しています。 スクリプト内で、ユーザーに質問があります。 read -p "- Audio Quality [scale from -2 to 10] ? " if [ -n "$REPLY" ] ; then ABITRATE="-aq $REPLY" fi 私の「ABITRATE」文字列は最終的なavconvコマンドラインに入ります。 しかし、ユーザーにKb(キロビット)の値でその質問に答え、それをlibvorbis使用するスケールに変換する機会をユーザーに与えたいと思います。「-2から10までのスケール」は次のとおりです。 Quality Kbit/s Normalization ----------------------------- -2 ~32 y -1 ~48 y 0 ~64 y 1 ~80 y 2 ~96 y 3 ~112 …


6
スクリプトに算術変数を追加する方法
フォルダーに含まれる多数のファイルの行サイズを累積したい。次のスクリプトを作成しました。 let a=0 let num=0 for i in folder/* do num=`cat $i | wc -l` a=$a+$num done echo $a スクリプトの最後にあるのは123 + 234 + 432 + ...であり、加算の算術演算の結果ではありません。



3
整数の比較:算術式または条件式
Bashでは、条件式を使用して2つの整数を比較できます arg1 OP arg2 OPはの一つである-eq、-ne、-lt、-le、-gt、または-ge。これらの算術二項演算子は、arg1がそれぞれarg2と等しい、等しくない、より小さい、以下、より大きい、またはより大きい場合にtrueを返します。Arg1およびarg2は、正または負の整数です。 または算術式: <= >= < > 比較 == != 平等と不平等 2つの整数を比較する方法が2つあるのはなぜですか?どちらを使用するか? たとえば、[[ 3 -lt 2 ]]条件式と(( 3 < 2 ))算術式を使用します。比較がtrueの場合、両方とも0を返します 2つの整数を比較する場合、これらの2つの方法は常に同じ意味で使用できますか?はいの場合、なぜBashには1つではなく2つのメソッドがあるのですか?

4
letまたはexprが0と評価されると、bash -eは終了します
-eを設定するbashスクリプトがあるので、スクリプトは終了ステータス!= 0で終了します。 変数に割り当てられた基本的なシェル算術演算を実行しようとしていますが、式が0に等しい場合があり、letまたはexprコマンドの終了ステータスが「1」になります。 以下に例を示します。 #!/bin/bash -ex echo "Test 1" Z=`expr 1 - 1` || true echo "Z will print" let "A=4 - 4" echo "A WILL NEVER PRINT $A" Y=`expr 1 - 1` echo "Y WILL NEVER PRINT $Y" X=$(expr 2 - 2) echo "X WILL NEVER PRINT $X" 出力は次のとおりです。 …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.