如何通过curl调用wttr.in获取不含正负号与°F标识的纯数字当前温度?
提取wttr.in返回的纯数字温度值方案
方法1:使用sed过滤非数字字符
通过sed命令剔除温度字符串中的非数字(含负号)部分,保留纯数字:
curl -s wttr.in/Amsterdam?format=%t | sed 's/[^0-9-]//g'
-s参数让curl静默执行,不显示进度条sed 's/[^0-9-]//g'表示将所有**不是数字0-9和负号-**的字符替换为空,最终得到纯数字温度(零下温度会保留负号)
如果你的音频文件不需要处理零下温度(无负号命名的文件),可以去掉正则中的-:
curl -s wttr.in/Amsterdam?format=%t | sed 's/[^0-9]//g'
方法2:使用grep提取数字片段
用grep的正则匹配功能直接提取数字部分:
curl -s wttr.in/Amsterdam?format=%t | grep -oE '[-0-9]+'
-o参数让grep只输出匹配到的内容-E启用扩展正则表达式,[-0-9]+匹配连续的负号和数字组合,精准提取纯数字温度
整合到自动化流程
可以将提取到的温度存入变量,直接用于调用对应的音频文件:
# 获取纯数字温度 current_temp=$(curl -s wttr.in/Amsterdam?format=%t | sed 's/[^0-9-]//g') # 推送音频文件到播出系统(替换成你的实际播出命令) your-broadcast-system-command "$current_temp.FLAC"
内容的提问来源于stack exchange,提问作者typecrazy789
相关产品推荐
相关产品推荐

