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

Bash Remove Last X Characters From String



場合によっては、いずれかの文字列から文字を削除する必要があります。場合によっては、Linuxには、Bashでそのようなテキストから文字を削除するためのいくつかの組み込みの便利なツールが含まれています。この記事では、これらのメソッドを使用して、いずれかの文字列から文字を削除する方法を示します。この投稿では、Ubuntu 20.04 FocalFossaで手順を実行しました。上記のユーティリティがインストールされているLinuxシステムでも、まったく同じ手順を実行できます。手順を実行するには、通常のターミナルを使用します。 Ctrl + Alt + Tショートカットは、ターミナルツールを開きます。

方法01:部分文字列の方法

文字列から文字または文字を削除する最初の方法は、元の文字列から部分文字列を作成するようなものです。その間、ターミナルはすでに開かれています。 bashコードを追加するためにbashファイルを作成します。その中で文字の削除や部分文字列の作成を行うことができます。そのため、シェルに組み込まれているtouch命令を使用して、bashファイルを作成しました。









ファイルはUbuntu20.04のホームフォルダーにすばやく生成されているので、エディターで開いて編集します。したがって、以下のように、GNUエディターを選択してfile.shドキュメントを開きます。







以下に示すコードをコピーします。このコードの先頭にはbash拡張子が含まれており、その後、文字列値を使用して文字列変数valを宣言しました。もう1行では、エコーフレーズを使用して、この変数を端末に表示します。本当の仕事はここから始まります。変数newを初期化し、元の変数valのサブストリングである値を割り当てました。二重コロンの後の中括弧で-14に言及することによってそれを行いました。これは、元の文字列FirstWorldCountriesから最後の14文字を削除する必要があることをコンパイラに通知します。残りの文字は変数newに保存されます。最後の行では、エコーを使用して新しい変数newを出力しています。



bashコマンドを使用したファイルfile.shの適切な実行は、期待どおりに行われます。最初に、最初の文字列変数valの値を表示し、その後、示されている出力に従って、最初の変数から新しく作成された文字列の値を表示します。

方法02:特別な記号の使用

文字列から最後の文字または文字を削除するもう1つの簡単で簡単な方法は、パーセンテージや疑問符などの特殊な記号または文字を使用することです。したがって、今回はパーセンテージと疑問符を使用して、文字列から文字を削除します。したがって、GNU Nanoエディターを使用してbashスクリプトを更新するために、同じファイルを既に開いています。全体的なコードは同じですが、変数の新しい部分は少し異なります。パーセント記号を使用して、上記の疑問符の数が、このパーセント記号の後に削除される変数valの文字数を表していることをシステムに通知しました。 9つの疑問符記号が追加されていることがわかります。これは、文字列FirstWorldCountriesの最後の9文字が削除され、残りの文字列がFirstWorldになることを意味します。この残りの文字列は、変数newに保存されます。

更新されたbashファイルを実行すると、期待どおりの出力が得られます。これは、最初の変数の元の文字列と、変数valから作成された新しい2番目の変数の値を示しています。

方法03:Sedを使用する

Sedは、テキストシーケンスを変更するための便利で効果的なツールです。これは非インタラクティブな開発環境であり、データ入力を操作して簡単なテキスト変換を行うことができます。 sedを使用して、不要なテキストから文字を削除することもできます。説明のために、サンプルの文字列を使用してsedコマンドにルーティングします。 sedを使用して、ある種の文字列から特定の文字を削除できます。そのため、echoステートメント内で文字列の単純な行を使用しました。上記の文字列から文字Aを削除するためにsedを使用しました。必ず構文「s / string_to_be_removed //」に従ってください。出力は、文字Aが削除されたことを示しています。

Aqsaという単語全体を削除するために、単語の最初と最後の文字に、欠落している文字を表すドットが含まれていることを説明しました。出力には、Aqsaという単語が削除された文字列が表示されます。

文字列から最後の文字をいくつでも削除するには、図のようにドル記号の前に、要件に応じてドットの数を記述します。

方法04:Awkを使用する

Awkは、パターンの照合やテキストの処理に使用できる高度なスクリプト言語です。 Awkを使用して、さまざまな方法で入力をシフトおよび変更できます。 awkを使用して文字列から文字を削除することもできます。 Awkはsedとは少し違うようです。今回はAqsaYasinで文字列を変更しました。 awk関数は、substrメソッドを介して部分文字列を作成し、ターミナルに出力します。関数の長さは、言及された文字列から削除された文字の数を示すために使用されています。ここで、length($ 0)-5は、文字列の最後の5文字を​​削除することを意味し、残りは印刷される部分文字列の一部になります。

文字列AqsaYasinから最後の9文字を削除しようとし、出力サブ文字列としてAを取得しました。

方法05:カットを使用する

Cutは、そのようなフレーズやドキュメントからテキストを抽出し、それを標準出力に印刷するためのコマンドラインユーティリティのようです。この操作は、ある種の文字列から文字を削除するためにも使用できます。サンプルフレーズを使用して、テスト目的でカット命令に渡します。そこで、Aqsa Yasinフレーズを使用して、それをカットクエリに渡しました。フラグ–cの後に、言及された文字列から文字を切り取るための文字列のインデックスの範囲を定義しました。インデックス1からインデックス5までの文字が表示されます。インデックス5はここでは除外されています。出力には、最初の4文字がAqsaとして表示されます。

今回は、カット命令の使い方を変えます。文字列を逆にするためにrev関数を使用しました。文字列を反転した後、文字列から最初の文字を切り取ります。フラグ-c2-は、サブストリングが文字2以降になることを意味します。その後、逆関数を再び使用して文字列を元に戻します。そのため、今回は最後の文字を削除して元の文字列を元に戻しました。

最後の7文字を削除するには、逆関数を使用しながら、cutコマンドで-c7-を指定する必要があります。

結論:

Linuxで基本的なタスクを実行する方法は複数あります。同様に、テキストから文字を削除することもできます。この記事では、文字列から不要な文字を削除するための5つの異なる方法と、いくつかのインスタンスについて説明しました。どのツールを選択するかは、選択内容、さらに重要なことに、何を達成したいかに完全に依存します。