file - 如何使用sed提取一个浮点数
问题描述
我需要从位于常量 1 旁边的文件 A 中读取一个浮点数,如下所示
constA \t 3.1415; //some comments
我试过了,但不知道如何在所需的数字之后删除其余的东西
#value=$(sed -En 's/constA[[:blank:]]+//p' fileA)
因此命令正在读取
3.1415; //some comments
我只需要
3.1415
完成:它正在使用以下行代码
value=$(sed -En 's/constA[[:blank:]]+//p' fileA | sed 's/;.*//')
解决方案
您可以使用
value="$(sed -En 's/constA[[:blank:]]+([0-9][0-9.]*).*/\1/p' <<< "$s")"
查看在线演示
细节
-En
-E
启用 POSIX ERE 语法并n
禁止默认行输出constA[[:blank:]]+([0-9][0-9.]*).*
模式匹配:constA
- 一个子串[[:blank:]]+
- 1+ 水平空白([0-9][0-9.]*)
- 第 1 组:一个数字,然后是任何 0+ 个点或数字.*
- 字符串的其余部分。
\1
将在结果中保留 Group 1 值。
推荐阅读
- google-cloud-functions - 用于向令牌集合发送 fcm 通知的云功能
- amazon-ec2-spot-market - 暂时停止 Spot 实例
- mysql - Hive 表到 MySQL 表的转换
- nginx - 无法将 Browsersync 与 DDEV nginx 服务器连接,因为 SSL 错误
- swift - 字典中的随机元素
- mongodb - 如何将远程服务器中的 Mongo DB 连接到我的 Docker?
- sql - 如何在 Oracle APEX 交互式网格报表中维护正在运行的计数器
- c# - VSTO Outlook 插件开发
- git - 将更改合并到分支上,但不从目标分支中获取更改
- amazon-web-services - 为什么我的 POST 到 AWS API Gateway 失败了?