区切り文字を使用して文字列の最後の部分を切り取るには?

区切り文字を使用して文字列の最後の部分を切り取るには?

私の文字列には区切り文字の下線(_)があります。

入力 -

  1. ABC_テスト
  2. PQR_XYZ_TEST
  3. PQR_XYZ_ABC_TEST

予想出力 -

  1. アルファベット
  2. PQR_XYZ
  3. PQR_XYZ_ABC

文字列の最後の部分だけを削除したいです。誰でもこれを達成するためのより速い方法(おそらく文章)を提案できますか?

答え1

string='ABC_TEST'
mod_string="${string%_*}"
echo "$mod_string"
ABC

答え2

デフォルトのsedコマンドは次のとおりです。

sed 's/_TEST$//' filename

または、最後の項目以降の項目を削除してください_

sed 's/_[^_]*$//' filename

文字列が別のコマンドから来た場合:command | sed ...

変数ならsed ... <<< "${VARIABLE}"

関連情報