bashで文字列を処理している場合は、文字列の長さを知る必要があるかもしれません。
ありがたいことに、bashで文字列の長さを取得するのは非常に簡単です。 my_string
という名前の文字列があるとします。 。その長さは次のように抽出できます:
${#my_string}
物事をよりよく説明するための例を次に示します。
[email protected]:~$ my_string="abhishek"
[email protected]:~$ echo "length is ${#my_string}"
length is 8
簡単でしたね。この文字列の長さを別の変数に保存して、後で使用できます:
[email protected]:~$ my_string="abhishek"
[email protected]:~$ length=${#my_string}
[email protected]:~$ echo "String length is $length"
String length is 8
Linuxの他のほとんどのものと同様に、Bashで文字列の長さを計算する方法はこれだけではありません。
exprコマンドを使用してbashで文字列の長さを取得する
bashで文字列の長さをテストするのに役立つ他のコマンドをいくつか見てみましょう。
これらのコマンドの1つはexprコマンドです。文字列オプションに役立ついくつかのオプションがあります。その中で、length
文字列の長さを示します。
[email protected]:~$ expr length "my string"
9
exprコマンドは長さを出力するため、コマンド置換を使用して変数に格納する必要があります。
#!/bin/bash
str="my string"
length=$(expr length "$str")
echo "Length of my string is $length"
このbashシェルスクリプトを実行すると、長さが出力されます:
[email protected]:~$ bash string.sh
Length of my string is 9
文字列の長さを取得するにはawkを使用します
AWKは、Linuxコマンドラインでテキストを編集するための非常に用途の広いコマンドです。これを使用して、文字列の長さを計算することもできます。
echoコマンドを使用してから、パイプリダイレクトを使用してawkで解析する必要があります:
[email protected]:~$ echo "my string" | awk '{print length}'
9
ご覧のとおり、awkコマンドの基本に精通していない限り、構文を覚えるのは簡単ではありません。
wcコマンドを使用して文字列の長さを計算する
Linuxで文字列の長さを取得する別の方法は、wcコマンドを使用することです。現在、wcコマンドは、ファイル内の行数、文字数をカウントするために使用されています。
文字列をエコーして、wcコマンドにパイプすることができます。 -m
オプションは文字数を示します。
[email protected]:~$ echo -n "my string" | wc -m
9
-n
に注意してください エコーコマンドのオプション? echoは新しい行文字\n
を自動的に追加するため、これは重要です。 最後に、それは文字列の長さを1つ増やします。 -n
を使用 オプション、echoコマンドは改行文字を追加しません。
前の例で見たように、コマンド置換を使用して文字列の長さを変数に格納できます。
#!/bin/bash
str="my string"
length=$(echo -n "my string" | wc -m)
echo "Length of my string is $length"
個人的には、${#string}が文字列の長さを取得するための私の好ましい方法です。覚えやすい。
君はどうでしょう?どちらの方法が好きですか?