bash - 如何从一行中的命令输出字符串中删除已知的最后一部分?
问题描述
换个说法 - 我想在同一行中使用 Bash 命令替换和字符串替换。
我的实际命令更长,但是这里对 echo 的荒谬使用只是简短的“替代”并且行为相同 - 具有相同的错误;)
我知道我们可以使用 Bash 命令来生成它的输出字符串作为另一个命令的参数,如下所示:
echo "$(echo "aahahah</ddd>")"
aahahah</ddd>
我也知道我们可以像这样删除字符串的最后一个已知部分:
var="aahahah</ddd>"; echo "${var%</ddd>}"
aahahah
我正在尝试编写一个命令,其中一个命令给出一个字符串输出,我想删除最后一部分,这是已知的。
echo "${$(echo "aahahah</ddd>")%</ddd>}"
-bash: ${$(echo "aahahah</ddd>")%</ddd>}: bad substitution
这可能是事情发生的顺序,或者替换仅适用于变量或硬编码的字符串。但我怀疑只是我错过了一些东西,这是可能的。
我如何使它工作?为什么它不起作用?
解决方案
像这样组合你的命令
var=$(echo "aahahah</ddd>")
echo ${var/'</ddd>'}
推荐阅读
- javascript - 在 jQuery DataTables 中使用连字符对数据进行排序
- ios - 获取 iPhone 最新机型底部高度
- java - `gradle jar` 似乎没有向 jar 文件添加依赖项
- java - 使用 javax.json.stream.JsonParser 和 Java 流解析的 JSON 字符串值周围的额外引号
- javafx - apache poi工作簿表中缺少空行excel
- hyperledger-fabric - 如何使用 IPv6 地址部署 Hyperledger Fabric Fabcar?
- c# - 小于或等于 `int.MaxValue` 的最大“浮点数”
- c++ - WinAPI - 获取可滚动的绘图框架
- swift - 如何使用 ARKit 和人脸检测将 3D 模型放置在人脸的正确位置?
- java - 如何为 Kafka KeyValueStore 设置值反序列化器?