2016-04-03 13 views
1

Amacım, belirli bir şekilde www.worldtides.info adresinden gelen gelgit zamanlarını almaktır. Tarih, "bugün" veya "yarın" kelimeleriyle "sed" ile nasıl değiştirilir?

Ben sitede bir API anahtarı var ve başarıyla düzenlenmek suretiyle Infos alabilirsiniz: Ben json sonucundan "tarih" ve "type" ayrıştırmak için benim ahududu üzerindeki jQ yükledim

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" 

.

terminalde sonucudur:

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'| 

sonucudur:

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

bilmiyorum

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

i sed kullanmak daha temiz bir sonuç almak için tarihin bugün olduğu tarih olan “bugün” ile nasıl değiştirileceğini (şu an yazdığım 2016-04-03) ve tarihin tarihini nasıl değiştireceğinizi öğrenin. Yarın tarihi ise "yarın" sözcüğü.

denedim:

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'| 

Ama hiç şans, değişiklik yok. Bana yardımcı olabilir misiniz ? teşekkürler

Sen ikame bu şekilde yapabiliriz

cevap

1

: your_last_result aşağıya soruya veriler içeren dosyadır

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 

"Sonuç şudur:"

2

Bazı yalın linux dağıtımı GNU'yu yok date kullanıma hazırdır ancak no'lu yarıda işlevini kullanmadan POSIX date'u kullanın. Yani sed'u date ile kullanmak istiyorsanız ilk önce bunu yüklemeniz gerekebilir. Alternatif olarak, eğer GNU awk kullanılabilir ise,

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