LukasRiedel

UNIX - Počasí

Apr 6th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.12 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. CityInfoXML="http://yr.no/place/Czech_Republic/Prague/Prague/forecast.xml"
  4.  
  5. rm -rf Forecast
  6. mkdir Forecast
  7.  
  8. wget -q $CityInfoXML -O Forecast/info.xml
  9.  
  10. cat Forecast/info.xml | grep "<name>" | sed "s/.*<name>//;s/<\/name> *\r//;s/_/ /g" | xargs printf "Showing weather forecast for %s.\n"
  11. # Napíše město, pro které se vypíše předpověď.
  12. # Města (respektive odkazy na předpověď) se dají měnit v proměnné CityInfoXML.
  13.  
  14. cat Forecast/info.xml | grep "<sun rise" | sed "s/.*rise\=\"....\-..\-..T//;s/\" set.*//" | xargs printf "The sun rises at %s "
  15. # Napíše čas východu slunce pro dnešní den.
  16.  
  17. cat Forecast/info.xml | grep "<sun rise" | sed "s/.*set\=\"....\-..\-..T//;s/\" \/>.*//" | xargs printf "and sets at %s.\n\n"
  18. # Napíše čas západu slunce pro dnešní den.
  19.  
  20. printf "Time from\n" > Forecast/0
  21. cat Forecast/info.xml | grep "<time from" | while read x; do
  22.     echo $x | sed "s/.*from\=\"//;s/T/ /;s/\:..\" .*//"
  23. done >> Forecast/0
  24. # Uloží do souboru údaje o časech, od kdy data platí.
  25.  
  26. printf "Time to\n" > Forecast/1
  27. cat Forecast/info.xml | grep "<time from" | while read x; do
  28.     echo $x | sed "s/.*to\=\"//;s/T/ /;s/\:..\" .*//"
  29. done >> Forecast/1
  30. # Uloží do souboru údaje o časech, do kdy data platí.
  31.  
  32. printf "Forecast\n" > Forecast/2
  33. cat Forecast/info.xml | grep "<symbol" | while read x; do
  34.     echo $x | sed "s/.*name\=\"//;s/\" .*//"
  35. done >> Forecast/2
  36. # Uloží do souboru údaje o oblačnosti pro jednotlivé časové úseky.
  37.  
  38. printf "Temperature\n" > Forecast/3
  39. cat Forecast/info.xml | grep "<temperature" | while read x; do
  40.     echo $x | sed "s/.*value\=\"//;s/\" .*//" | xargs printf "%d °C\n"
  41. done >> Forecast/3
  42. # Uloží do souboru údaje o teplotě pro jednotlivé časové úseky.
  43.  
  44. printf "Pressure\n" > Forecast/4
  45. cat Forecast/info.xml | grep "<pressure" | while read x; do
  46.     echo $x | sed "s/.*value\=\"//;s/\" .*//" | xargs printf "%.1f hPa\n"
  47. done >> Forecast/4
  48. # Uloží do souboru údaje o tlaku pro jednotlivé časové úseky.
  49.  
  50. printf "Precipitation\n" > Forecast/5
  51. cat Forecast/info.xml | grep "<precipitation" | while read x; do
  52.     echo $x | sed "s/.*value\=\"//;s/\" .*//" | xargs printf "%.1f mm\n"
  53. done >> Forecast/5
  54. # Uloží do souboru údaje o srážkách pro jednotlivé časové úseky.
  55.  
  56. cat Forecast/info.xml | grep "<windDirection" | while read x; do
  57.     echo $x | sed "s/.*code\=\"//;s/\" .*//" | xargs printf "%s\n"
  58. done >> Forecast/T1
  59. # Uloží do souboru údaje o směru větru pro jednotlivé časové úseky.
  60.  
  61. cat Forecast/info.xml | grep "<windSpeed" | while read x; do
  62.     echo $x | sed "s/.*name\=\"//;s/\" .*//" | xargs printf "%s"
  63.     echo $x | sed "s/.*mps\=\"//;s/\" .*//" | xargs printf ", %.1f m/s \n"
  64. done >> Forecast/T2
  65. # Uloží do souboru údaje o rychlosti větru pro jednotlivé časové úseky.
  66.  
  67. printf "Wind\n" > Forecast/6
  68. paste -d " " Forecast/T2 Forecast/T1 >> Forecast/6
  69. rm Forecast/T2 Forecast/T1
  70. # Sjednotí údaje o větru do jednoho souboru (sloupce v tabulce).
  71.  
  72. rm Forecast/info.xml
  73.  
  74. cd Forecast && paste -d "\t" $(ls | sort -n) | expand -t 25
  75. # Vypíše tabulku
  76.  
  77. rm -rf Forecast
Advertisement
Add Comment
Please, Sign In to add comment