如何修剪带有分隔符的字符串的最后部分?

如何修剪带有分隔符的字符串的最后部分?

我的字符串具有分隔符下划线(_)

输入 -

  1. ABC_测试
  2. PQR_XYZ_测试
  3. PQR_XYZ_ABC_测试

预期产出 -

  1. ABC
  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}"

相关内容