2016-04-03 95 views
1

我的目标是以特定方式从www.worldtides.info检索潮汐时间。如何用“今日”或“明天”字样替换“sed”日期

我在网站上的API密钥,可以通过发行成功地检索相关信息:

curl -s "http://www.worldtides.info/api?extremes&lat=my_latitude&lon=my_longitude&length=86400&key=my_api_key"| jq -r ".extremes[] | .date + .type" 

我已经安装在我的覆盆子JQ解析来自JSON结果“日期”和“类型”。

在终端的结果是:

2016-04-03T16:47+0000Low 
2016-04-03T23:01+0000High 
2016-04-04T05:18+0000Low 
2016-04-04T11:29+0000High 

为了得到一个更清洁的结果是,我使用SED:

curl -s "http://www.worldtides.info/api?extremes&lat=my_latitude&lon=my_longitude&length=86400&key=my_api_key"| jq -r ".extremes[] | .date + .type" | sed 's/+0000/ /g' | sed 's/T/ /g'| 

结果是:

2016-04-03 16:47 Low 
2016-04-03 23:01 High 
2016-04-04 05:18 Low 
2016-04-04 11:29 High 

我不知道如果今天的日期(2016-04-03当我正在写作时)以及如何用日期替换日期如果是明天的日期,则表示“明天”。

我已经试过:

curl -s "http://www.worldtides.info/api?extremes&lat=my_latitude&lon=my_longitude&length=86400&key=my_api_key"| jq -r ".extremes[] | .date + .type" | sed 's/date +"%Y-%m-%d"/Today/g' | sed 's/+0000/ /g' | sed 's/T/ /g'| 

,但没有运气,没有变化。你可以帮我吗 ?感谢

回答

1

你可以替代这种方式:

today=`date +%Y-%m-%d` 
tomorrow=`date --date="tomorrow" +%Y-%m-%d` 
echo $today $tomorrow 
sed "s/$today/today/g; s/$tomorrow/tomorrow/g;" your_last_result 

其中your_last_result是从下面你的问题包含数据的文件“的结果是:”

2

有些瘦的Linux发行版没有GNU date开箱即用,但使用POSIX date明天功能。因此,如果要使用seddate,则可能需要先安装它。或者,如果GNU awk可用,您也可以做

awk '$1 ~ strftime("%Y-%m-%d") {$1 = "today"} $1 ~ strftime("%Y-%m-%d",systime()+24*3600) {$1 = "tomorrow"} {print}'