我正在解析文本天气数据:http ://www.nws.noaa.gov/view/prodsByState.php?state=OH&prodtype=hourly 并且只想获取我所在县/地区的数据。诀窍是每个文本报告都有当天早些时候的先前报告,我只对文件开头出现的最新报告感兴趣。我尝试使用 sed one 衬垫中的“两个正则表达式(包括)之间的文件打印部分”。我不知道如何让它在发生一次后停止。
sed -n '/OHZ061/,/OHZ062/p' /tmp/weather.html
我发现了这个:Sed 在模式之间打印第一个匹配结果,它适用于以下内容
sed -n '/OHZ061/,$p;/OHZ062/q' /tmp/weather.html
但我觉得它不是最强大的解决方案。我没有任何东西可以支持稳健性的说法,但我有一种直觉,可能会有更稳健的解决方案。
那么有没有更好的解决方案呢?还有可能让我第一次尝试的解决方案起作用吗?如果您发布解决方案,请解释所有开关/反向引用/魔术,因为我仍在尝试发现 sed 和命令行工具的所有功能。
并帮助您开始:
wget -q "http://www.nws.noaa.gov/view/prodsByState.php?state=OH&prodtype=hourly" -O /tmp/weather.html
ps:我看了这篇文章:http ://www.unix.com/shell-programming-scripting/167069-solved-sed-awk-print-between-patterns-first-occurrence.html但 sed 完全是希腊语我和我无法通过它来解决我的问题。