exprコマンド:Linuxでの簡単な計算と文字列処理の強力なツール

Linuxのコマンドラインを触っていると、ちょっとした計算をしたくなることがあります。例えば、スクリプトの中で変数を使って計算したり、文字列の長さを求めたりする場合です。そんなときに便利なのが、今回紹介するexprコマンドです。

exprは、シンプルな計算や文字列操作ができる便利なコマンドです。このコマンドを使いこなせるようになると、スクリプトがよりパワフルになり、Linuxの操作がさらに楽しくなるでしょう。この記事では、Linux初心者や中級者を対象に、exprコマンドの基本的な使い方から応用方法までを詳しく解説します。


exprコマンドの基本的な使い方

exprコマンドは、シェルスクリプトやコマンドラインで数値計算や文字列の操作を行うためのコマンドです。基本的には以下のような形式で使用します。

expr <式>

数値計算の例

まず、簡単な計算から始めてみましょう。exprは四則演算に対応しており、基本的な計算をシンプルに実行できます。

足し算

expr 5 + 3

出力:

8

引き算

expr 10 - 4

出力:

6

掛け算

掛け算の場合は、*を使いますが、シェルではアスタリスクが特殊文字として解釈されるため、エスケープする必要があります。

expr 6 \* 7

出力:

42

割り算

expr 20 / 4

出力:

5

余り(剰余演算)

expr 10 % 3

出力:

1

文字列操作の例

exprは文字列の操作にも便利です。以下にいくつかの例を挙げます。

文字列の長さを求める

文字列の長さを取得するには、lengthを使用します。

expr length "Linux"

出力:

5

部分文字列の抽出

文字列の一部を抽出するには、substrを使います。

expr substr "HelloWorld" 6 5

出力:

World

文字列のパターン検索

特定の文字列が含まれるかどうかを調べるには、matchを使います。

expr match "LinuxRocks" "Linux"

出力:

5

exprコマンドの主要なオプション

exprコマンド自体はシンプルですが、その中で覚えておくべき主要な機能やオプションをいくつか紹介します。

1. +(加算)

2つの数値を足します。

expr 10 + 5

出力:

15

2. -(減算)

2つの数値を引きます。

expr 15 - 4

出力:

11

3. *(乗算)

2つの数値を掛けます。アスタリスクはエスケープする必要があります。

expr 6 \* 3

出力:

18

4. /(除算)

2つの数値を割ります。

expr 20 / 5

出力:

4

5. %(剰余)

剰余(余り)を求めます。

expr 7 % 3

出力:

1

6. :(文字列マッチ)

正規表現を使って文字列を検索します。

expr "abcd1234" : "abcd[0-9]*"

出力:

8

exprコマンドの応用

スクリプトでの使用例

条件分岐での利用

exprを使って条件分岐の中で計算を行う例を示します。

#!/bin/bash

x=10
y=20

sum=$(expr $x + $y)

if [ $sum -gt 20 ]; then
    echo "合計は20より大きいです"
else
    echo "合計は20以下です"
fi

実行結果:

合計は20より大きいです

ループでの利用

カウンタを使ったループ処理で利用する例です。

#!/bin/bash

count=1

while [ $count -le 5 ]; do
    echo "カウント: $count"
    count=$(expr $count + 1)
done

実行結果:

カウント: 1
カウント: 2
カウント: 3
カウント: 4
カウント: 5

文字列操作の実践例

ファイル名の抽出

ファイル名から拡張子を取り除く例です。

filename="example.txt"
basename=$(expr match "$filename" '\(.*\)\..*')
echo "ベース名: $basename"

実行結果:

ベース名: example

入力文字列の検証

ユーザー入力が数字のみかどうかを確認する例です。

#!/bin/bash

read -p "数字を入力してください: " input

if [ $(expr "$input" : '^[0-9]*$') -eq 0 ]; then
    echo "数字ではありません"
else
    echo "数字です"
fi

exprコマンドの注意点

exprは非常に便利なコマンドですが、いくつかの注意点があります。

  1. スペースが重要:
    exprでは、演算子やオペランドの間にスペースを入れる必要があります。スペースがないとエラーになります。
   expr 5+3  # エラー
   expr 5 + 3  # 正しい
  1. シェルによるエスケープ:
    特殊文字(*(など)を使う場合は、シェルでエスケープする必要があります。
  2. 制限事項:
    exprは基本的な計算や文字列操作に適している一方で、複雑な処理には不向きです。その場合はPythonやawkなどを検討しましょう。
  3. 整数のみの計算:
    exprは小数点を扱えません。浮動小数点演算が必要な場合はbcやその他のツールを使用してください。

まとめ

この記事では、Linuxのexprコマンドについて基本的な使い方から応用例までを紹介しました。exprはシンプルでありながら、数値の計算や文字列の操作、条件分岐など幅広い用途で活用できます。特に、シェルスクリプトの中で計算や文字列操作を行う際には非常に便利です。

Linux初心者や中級者にとって、exprを使いこなすことでスクリプトのパワーを大幅に向上させることができます。ぜひ、この記事を参考にして、あなたのLinuxスキルをさらに磨いてください!

さらに高度な処理が必要な場合は、awksedbcといった他のツールも併せて学ぶことで、シェルスクリプトの幅をもっと広げることができるでしょう。

コメント

タイトルとURLをコピーしました