• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Skrypt BASH do generowania pliku svg z wykresem słupkowym

VPS Starter Arubacloud
+3 głosów
671 wizyt
pytanie zadane 14 września 2016 w Nasze projekty przez obl Maniak (51,280 p.)
edycja 14 września 2016 przez obl

Napisałem jakiś czas temu skrypt w BASH-u do tworzenia pliku svg (grafika wektorowa) z wykresem stworzonym na podstawie podanych przez użytkownika danych. Skrypt na mojej stronie tutaj na końcu strony można pobrać. Przykładowe uruchomienie skryptu:

sh svgDiag.sh "3 15 34 56 38 10 11 0 5 19 6 5 20 33 44 5 6 7 8" "Wykres przykładowy działania skryptu BASH"

Edit.

Poprawiłem trochę skrypt - teraz zapisuje do html-a w lżejszej formie. W Inkscapie się nie otworzy, ale da się to zmienić, wystarczy usunąć cały nagłówek dla html-a i body na końcu no i wstawić na początku to:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

I zapisać. Musiałem tak zrobić, bo mi znaków polskich nie wyświetlał poprawnie jak w svg zapisywałem.

 

2 odpowiedzi

+1 głos
odpowiedź 14 września 2016 przez Comandeer Guru (599,730 p.)
Aż się prosi wrzucić to na GitHuba ;)

Wypluwa to strasznie zanieczyszczony SVG. Te wszystkie metadata od Inkscape'a można z powodzeniem usunąć.

Fajnym pomysłem na rozwój może być możliwość podania skryptowi pliku JSON z danymi, z których wygeneruje taki wykres. Wówczas bym z powodzeniem używał ;)

BTW mam nadzieję, że się nie obrazisz jeśli wykorzystam Twój kod do stworzenia wersji JS tego?
komentarz 14 września 2016 przez obl Maniak (51,280 p.)
A niby dlaczego miałbym się obrazić? Po to to zrobiłem, żeby każdy mógł korzystać. Co do tego zarzutu o strasznie zanieczyszczony kod to masz rację, miałem trochę problemów żeby to otwierało się w Inkscap-ie więc wrzuciłem "roboczo" wszystko co jest gdy Inkscap-e tworzy plik. Za jakiś czas to dopracuję trochę.
komentarz 14 września 2016 przez Benek Szeryf (90,690 p.)
Commander, generowałeś na nowo plik, czy otworzyłeś ten, który jest w paczce? Mnie się otwiera ten z paczki, natomiast generuje się błędy plik. Z tego co widzę, to chodzi o znaki nowej linii.
komentarz 14 września 2016 przez Comandeer Guru (599,730 p.)
@Benek nie otwierdałem w Inkscape. Otwierałem w Chrome.
komentarz 14 września 2016 przez obl Maniak (51,280 p.)

@Comandeer źle cię zrozumiałem, jak chcesz przerabiać na JS to przerabiaj. Ja też pewnie za jakiś czas przerobię. A mam jeszcze nieco lepszą wersję php tego wykresu ale generującą plik png. Jak chcesz to możesz zerknąć tutaj z pewnością byś to lepiej zrobił, ale mam nadzieję, że mój kod nie jest zbyt tragiczny:).

+1 głos
odpowiedź 14 września 2016 przez Benek Szeryf (90,690 p.)

OK, w skrypcie jest błąd, mianowicie używasz znaków nowej linii \n w instrukcji echo. W takim wypadku musisz dodać opcję -e, by białe znaki były poprawnie przetwarzane przez tę instrukcję. Najłatwiej będzie w terminalu Linuxa przepuścić cały skrypt przez seda (sprawdzałem, działa):

sed -e "s,echo,echo -e,g" svgDiag.sh > tmp
mv tmp svgDiag.sh

 

Podobne pytania

+1 głos
3 odpowiedzi 507 wizyt
0 głosów
0 odpowiedzi 904 wizyt
pytanie zadane 1 czerwca 2017 w Systemy operacyjne, programy przez smyko_k Nowicjusz (140 p.)
0 głosów
0 odpowiedzi 133 wizyt
pytanie zadane 16 października 2016 w Nasze projekty przez obl Maniak (51,280 p.)

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...