Linuxコマンド辞典 exprコマンド(テキスト処理)
式を評価して標準出力に出力する「expr」コマンドの概要と使い方を記載しています。
RHEL Fedora CentOS Vine Deblan Ubuntu Plamo
参考サイト:Man page of INSTALL
概要・使用方法
与えられた「式」を評価して結果を標準出力に出力します。式に使われる演算記号はシェルの特殊文字に使われているものもあり、「\(バックスラッシュ)」でシェルに処理されないようにエスケープしなければならないことがあります。
簡単なシェル上の計算機やシェルスクリプトでの演算結果取得として利用します。
書式
$ expr 評価式
評価式
引数1 | 引数2 | 引数1がNULL、0以外なら引数1を返す。引数1にそれ以外が入っていれば引数2を返す |
引数1 & 引数2 | 引数1と引数2がNULLや0以外なら引数1を返す。それ以外は0を返す |
引数1 < 引数2 | 引数1が引数2より小さければ1を返し、それ以外は0を返す |
引数1 <= 引数2 | 引数1が引数2以下であれば1を返し、それ以外は0を返す |
引数1 = 引数2 | 引数1が引数2が同じ値であれば1を返し、それ以外は0を返す |
引数1 != 引数2 | 引数1が引数2が異なる値であれば1を返し、それ以外は0を返す |
引数1 >= 引数2 | 引数2が引数1以上であれば1を返し、それ以外は0を返す |
引数1 > 引数2 | 引数2が引数1より小さければ1を明史、それ以外は0を返す |
引数1 + 引数2 | 引数1と引数2を足した結果を返す(加算) |
引数1 – 引数2 | 引数1と引数2を引いた結果を返す(減算) |
引数1 * 引数2 | 引数1と引数を掛けた結果を返す(乗算) |
引数1 / 引数2 | 引数1から引数2を割った結果を返す(除算) |
引数1 % 引数2 | 引数1から引数2を割ったあまりを返す(剰余算) |
文字列:正規表現 | 文字列演算で一致した文字数を返す。引数2はgrepで利用する正規表現を利用可能 |
match 文字列 正規表現 | 「文字列:正規表現」と同じ |
substr 文字列 位置 長さ | 文字列の位置から指定した長さまでの文字列を返す |
index 文字列 文字 | 文字列に文字が含まれている最初の文字数を返す |
length 文字列 | 文字列の長さを返す |
加算した結果を返す
計算した結果を返す。演算記号の前後にはスペースが必要。
$ expr 値1 + 値2 + 値3
実行結果
[sunarin@localhost work]$ expr 1 + 2 + 3
6
[sunarin@localhost work]$
乗算した結果を返す
計算した結果を返す。演算記号の前後にはスペースが必要。
$ expr 値1 \* 値2
実行結果
[sunarin@localhost work]$ expr 365 \* 24
8760
[sunarin@localhost work]$
数値の大小を比較する
数値を比較した結果を返す。演算記号の前後にはスペースが必要。
$ expr 値1 \<= 値2
実行結果
引数1(10)が引数2(20)以下であるため、1を返す。以上の場合は0を返す。
[sunarin@localhost work]$ expr 10 \<= 20
1
[sunarin@localhost work]$
文字数を返す
$ expr length 文字列
実行結果
[sunarin@localhost work]$ expr length "test string"
11
[sunarin@localhost work]$
文字列の中で、最初に出現した箇所までの文字数を返す
$ expr index "調べる文字列" "文字"
実行結果
sという文字が3文字目に出現した。
[sunarin@localhost work]$ expr index "test string" "s"
3
[sunarin@localhost work]$
指定した範囲で文字列を抽出する
$ expr substr "対象文字列" 開始位置 終了位置
実行結果
[sunarin@localhost work]$ expr substr "password" 2 5
asswo
[sunarin@localhost work]$
シェル内で計算に利用する場合はexprより、シェル組込みのletを利用するほうが計算が早い場合があります。