![如何修剪带有分隔符的字符串的最后部分?](https://linux22.com/image/174117/%E5%A6%82%E4%BD%95%E4%BF%AE%E5%89%AA%E5%B8%A6%E6%9C%89%E5%88%86%E9%9A%94%E7%AC%A6%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2%E7%9A%84%E6%9C%80%E5%90%8E%E9%83%A8%E5%88%86%EF%BC%9F.png)
我的字符串具有分隔符下划线(_)
输入 -
- 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}"