2016-04-03 40 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}'