Bash で文字列から最初の文字を削除する

Olorunfemi Akinlua 2023年6月20日
  1. sed コマンドを使用して Bash の文字列から最初の文字を削除する
  2. cut コマンドを使用して Bash の文字列から最初の文字を削除する
  3. substring パラメータを使用して Bash の文字列から最初の文字を削除する
Bash で文字列から最初の文字を削除する

これを直接実行できる組み込み関数がないため、Bash で文字列の最初の文字を削除するのは難しい場合があります。 ただし、sed コマンド、cut コマンド、または substring パラメータ展開を使用するなど、これを実現する方法がいくつかあります。

この投稿では、各アプローチを使用して Bash の文字列から最初の文字を削除する方法を確認します。

sed コマンドを使用して Bash の文字列から最初の文字を削除する

Bash では、sed コマンドを使用して文字列の最初の文字を削除できます。また、^ (行頭) 正規表現で s (置換) コマンドを使用できます。 s コマンドを使用すると、文字列内のパターンを検索し、その文字列を別の文字列に置き換えることができますが、^ 正規表現は行頭に一致します。

たとえば、Welcome という単語を含む my_string という文字列があり、最初の文字 (文字 W) を削除したいとします。 sed コマンドを使用してこれを実現できます。

my_string="Welcome"

new_string=$(echo "$my_string" | sed 's/^.//')

echo "The modified string is: $new_string"

出力:

The modified string is: elcome

上記のコードでは、sed コマンドを使用してパターン ^. を検索します。 my_string 変数に入力し、空の文字列に置き換えます。 ^ 文字は行頭に一致し、. 文字は行頭に一致します。 character は、任意の 1 文字に一致します。

sed コマンドは、文字列の最初の文字 W を削除します。

sed コマンドの出力は new_string 変数に格納され、echo コマンドを使用して変更された文字列を出力します。 コードの出力はThe modified string is: elcomeになります。

cut コマンドを使用して Bash の文字列から最初の文字を削除する

文字列から最初の文字を削除する Bash のもう 1つの方法は、cut コマンドを使用することです。これにより、文字列から指定された数の文字を抽出できます。 cut コマンドは文字列を入力として受け取り、指定された文字のみを出力します。

cut コマンドを使用して文字列の最初の文字を削除するには、-c オプションを使用して、抽出する文字位置を指定できます。 たとえば、“Hello” という単語を含む同じ my_string 変数があり、最初の文字 (文字 “H”) を削除したいとします。 cut コマンドを使用してこれを実現できます。

my_string="Hello"

new_string=$(echo "$my_string" | cut -c 2-)

echo "The modified string is: $new_string"

出力:

The modified string is: ello

上記のコードでは、cut コマンドと -c オプションを使用して、2 番目の位置 (2) から文字列の末尾 (-) までの文字を抽出します。 これは、cut コマンドが文字列の最初の文字 (この場合は文字 “H”) を削除することを意味します。

cut コマンドの出力は new_string 変数に格納され、echo コマンドを使用して変更された文字列を出力します。 コードの出力はThe modified string is: elloです。

substring パラメータを使用して Bash の文字列から最初の文字を削除する

最後に、substring パラメータ展開を使用して、Bash の文字列の最初の文字を削除できます。 この特別な構文により、sedcut などの外部コマンドを使用せずに、Bash スクリプトで直接変数に対して文字列操作操作を実行できます。

substring パラメーター展開を使用して文字列の最初の文字を削除するには、${string:position} 構文を使用できます。ここで、string は文字列を含む変数であり、position は文字列の開始位置です。 抽出する部分文字列。 たとえば、Hello という単語を含む同じ my_string 変数があり、最初の文字 (文字 H) を削除したいとします。 substring パラメータ展開を使用してこれを実現できます。

my_string="Hello"

new_string=${my_string:1}

echo "The modified string is: $new_string"

出力:

The modified string is: ello

上記のコードでは、${my_string:1} 構文を使用して、my_string 変数の 2 番目の位置 (1) から始まる部分文字列を抽出します。 最初の文字 (文字 H) は文字列から削除されます。

substring パラメーター展開の出力は、new_string 変数に格納され、echo コマンドを使用して変更された文字列を出力します。 コードの出力は、The modified string is: elloになるはずです。

結論として、sed コマンド、cut コマンド、または substring パラメータ展開を使用するなど、Bash で文字列の最初の文字を削除する方法はいくつかあります。 これらの方法にはそれぞれ長所と短所があり、最良の選択は

Olorunfemi Akinlua avatar Olorunfemi Akinlua avatar

Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.

LinkedIn

関連記事 - Bash String