如何解决如何在bash中的特定单词之前打印字符串?
3.10.0-1127.18.2.el7.x86_64Repository rhel-7-server-optional-rpms is listed more than once in the configuration
这是我的目标输出:3.10.0-1127.18.2.el7.x86_64
解决方法
重击:
var="3.10.0-1127.18.2.el7.x86_64Repository rhel-7-server-optional-rpms"
echo "${var%%Repository*}"
参见手册中的 3.5.3 Shell Parameter Expansion。
,有几种方法。
“简单”是使用带有正则表达式的 sed 来替换要剥离的部分。
例如:
echo "3.10.0-1127.18.2.el7.x86_64Repository rhel-7-server-optional-rpms" | sed -E "s/Repository.*//"
3.10.0-1127.18.2.el7.x86_64
解释使用的 sed
命令:sed -E "s/Repository.*//"
:
E` 用于扩展正则表达式。
和 sed 语法替换是:
s/regexp/replacement/
尝试将正则表达式与模式空间匹配。如果成功, 替换与替换匹配的部分
这里我们替换没有找到的字符串。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。