ウェブサイト検索

Bashで文字列から最後のn文字を削除する方法


Bashは、LinuxおよびUnix系のオペレーティングシステムで広く使用される人気のシェルスクリプト言語です。Bashスクリプトでの一般的なタスクの1つは、文字列を操作することです。時には、文字列から最後のn文字を削除する必要があります。この記事では、文字列から最後のn文字を削除するためのいくつかのBashメソッドについて説明します。

bashで文字列から最後のn文字を削除する方法

Bashで、ユーザー入力から末尾の空白を削除したり、文字列の最後のn文字を取り除いたりすることは、望ましくない拡張子を持つファイル名を整えるために使用できます。

  • cutコマンドを使用する
  • sedコマンドを使用する
  • パラメータ展開の使用

方法1: cutコマンドの使用

Bashのcutコマンドは、ファイルの各行からセクションを抽出するために使用されます。また、文字列から特定の文字範囲を抽出するためにも使用できます。文字列から最後のn文字を削除するには、-cオプションを使用してcutコマンドを実行できます。以下がその構文です:

echo "string" | cut -c -n

ここで、文字列は最後のn文字を削除したい実際の文字列であり、nは削除したい文字数です。以下は上記の構文を使用した例です:

#!/bin/bash

string="Hello Linux"

echo "$string" | cut -c -5

上記の例では、cutコマンドを使用して文字列「Hello Linux」から最後の6文字を削除し、出力は「Hello」となります。

方法2: sedコマンドの使用

sedは、ファイルや入力ストリームに対してさまざまなテキスト変換を行うために使用できる強力なストリームエディタです。sedを使用して文字列から最後のn文字を削除するには、次のコマンド構文を使用できます:

echo "string" | sed 's/.\{n\}$//'

ここでは、nは文字列の末尾から削除したい文字の数であり、以下にsedコマンドを使用した例を示します。

#!/bin/bash

string="Hello Linux"

echo "$string" | sed 's/.\{6\}$//'

上記の例では、sedコマンドを使用して文字列「Hello Linux」から最後の6文字を削除し、出力は「Hello」となります。

方法3: パラメータ展開を使用する

パラメータ拡張は、Bash の機能であり、変数の値を操作することができます。パラメータ拡張を使用して文字列から最後の n 文字を削除するには、以下の構文を使用します:

${string::-n}

ここで、文字列変数は実際の文字列を含んでおり、そこから最後のn文字を削除したいと考えています。そして、nは削除したい文字数です。

#!/bin/bash

string="Hello Linux"

echo ${string::-6}

上記の例では、パラメータ展開を使用して文字列「こんにちはLinux」の最後の4文字を削除し、出力は「こんにちは」となります。

結論

Bashで文字列から最後のn文字を削除するには、cutコマンド、sedコマンド、およびパラメータ展開の3つの方法があります。これらの方法は使いやすく、さまざまなBashスクリプトの作業に役立ちます。これらの方法を使用することで、文字列を簡単に操作し、Bashでテキスト変換を行うことができます。