我的字符串具有分隔符下划线(_)
输入 -
- ABC_测试
- PQR_XYZ_测试
- PQR_XYZ_ABC_测试
预期产出 -
- ABC
- PQR_XYZ
- 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}"