przejście do zawartości
Jan Kończak
Narzędzia użytkownika
Zaloguj
Narzędzia witryny
Narzędzia
Pokaż stronę
Poprzednie wersje
Odnośniki
Ostatnie zmiany
Menadżer multimediów
Indeks
Zaloguj
Ostatnie zmiany
Menadżer multimediów
Indeks
Jesteś tutaj:
start
»
so
»
skrypty_tematy
so:skrypty_tematy
Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić.
==== Skrypty powłoki ==== Do zaliczenia przedmiotu każda osoba musi napisać dwa wybrane przez siebie skrypty i wysłać je mailem **do 09.06**. Proszę o wpisanie ''[SO]'' na początku tematu maila. \\ Poniżej lista tematów skryptów. Do listy tematów mogę dopisać inne – proszę o propozycje mailem. ==== Lista tematów ==== **~~Temat.#~~** Generowanie miniaturek \\ Skrypt przyjmuje jako argument listę katalogów. \\ Skrypt generuje dla każdego obrazu znajdującego się bezpośrednio w podanych katalogach miniaturę o określonym rozmiarze i umieszcza ją w podkatalogu ''tn'' w katalogu w którym znajduje się obraz. Miniaturkom ustawia czasy modyfikacji, zmiany i dostępu na identyczne jak odpowiednie czasy obrazu. \\ Skrypt wypisuje na ekranie nazwę każdego przetwarzanego obrazu. \\ W zadaniu zaleca się skorzystać z programu ''file'' do wykrywania typu MIME i programu ''convert'' (wchodzącego w skład pakiety narzędzi imagemagick) do generowania miniatur. **~~Temat.#~~** Ściąganie obrazków ze strony \\ Skrypt przyjmuje jako argument listę adresów URL do stron www. \\ Skrypt pobiera wskazane strony i wyciąga z nich adresy obrazów (przez obraz należy rozumieć tag ''<img …'' z argumentem ''src''). Następnie skrypt ściąga wszystkie obrazy z nazwami nie istniejącymi w bieżącym katalogu. Skrypt ściąga obrazy równolegle, ale z określoną górną ilością współbieżnych pobierań. \\ Skrypt wypisuje na ekranie każdy znaleziony na stronie obraz i wypisuje czy istnieje w bieżącym katalogu czy będzie pobrany oraz wypisuje komunikat o zakończniu pobierania każdego obrazu. \\ W zadaniu zaleca się skorzystać z programu ''wget'' lub ''curl'' do pobierania plików z sieci. **~~Temat.#~~** Testowanie programu z kombinacjami parametrów \\ Skrypt do testowania programu przyjmującego dwa parametry. Skrypt ma uruchamiać podany program z wszystkimi podanymi kombinacjami dla dwóch parametrów biorąc możliwe wartości parametrów z odpowiednich list. \\ Standardowe wejście((lub plik wynikowy, jeśli wybrany program wyniki umieszcza w pliku)) każdego uruchomienia ma trafić do katalogu z nazwą testowanego programu i datą uruchomienia skryptu do pliku z nazwą jednoznacznie identyfikują kombinację parametrów. Pliki mają być następnie skompresowane. \\ Skrypt nie przyjmuje argumentów, ale w pierwszych kilku liniach należy umieścić zmienne pozwalające ustawić uruchamiane polecenie i zakresy parametrów. \\ Skrypt na standardowe wyjście ma wypisywać, przed uruchomieniem każdego testu, informacje o testowanej kombinacji i bieżący czas. \\ Wybór testowanego programu dowolny. Przykładowy program który można testować to np. program ''fio'' do testu wydajności dysków; przykładowe wykonanie w Bashu to: \\ ''fio <(echo -e "[foo] \n time_based \n runtime=1s \n filename=/tmp/testFile \n filesize=10M \n ioengine=posixaio \n readwrite=randrw \n rwmixread=10 \n blocksize=4k")'' \\ Parametry do zmiany to np. rozmiar bloku i procent odczytów. **~~Temat.#~~** Przygotowywanie i uruchomienie testu na zdalnej maszynie \\ Skrypt ma utworzyć tymczasowy katalog w którym umieści pliki z listy (lista czytana z pliku lub konfigurowalna na początku skryptu). Następnie skrypt ma przygotować plik konfiguracyjny i umieszczając w nim wartości podane jako argumenty skryptu. Następnie pliki mają być skopiowane do maszyny zdalnej (adres maszyny ma być ustawialny w zmiennej na początku skryptu) i na zdalnej maszynie ma zostać uruchomiony wskazany program (też ustawialny w zmiennej na początku skryptu). Standardowe wyjście i standardowy błąd uruchomionego programu mają trafić do pliku z nazwą programu i bieżącą datą. \\ Wybór testowanego programu i format pliku konfiguracyjnego dowolny. Przykładowy program który można testować i format pliku konfiguracyjnego można wziąć z poprzedniego tematu. **~~Temat.#~~** Rekurencyjne wyszukiwanie tekstu w katalogach \\ Skrypt przyjmuje jako pierwszy argument wyszukiwany tekst, jako kolejne listę katalogów. \\ Skrypt wyszukuje w plikach w podanych katalogach (rekurencyjnie) podanego tekstu. Dla plików pdf skrypt wyszukuje w tekście (''pdftotext''), dla plików skompresowanych z rozszerzeniem ''.gz''/''.bz2''/''.xz''… używa odpowiednio ''zgrep''/''bzgrep''/''xzgrep''…, dla plików ''.zip'' oraz dokumentów MS Office (np. ''.docx'') i Open Document Format (np. ''.odt'') wyszukuje w wynikach ''unzip -c'', dla pozostałych plików używa zwykłego ''grep''. \\ Skrypt ma wypisywać na standardowe wyjście nazwę pliku w którym znajduje się szukany tekst. Skrypt ma nie wyświetlać komunikatów o braku dostępu do plików. **~~Temat.#~~** Kopie zapasowe z wykorzystaniem ''rsync'' \\ Skrypt ma wykonywać kopię zapasową katalogów z listy (umieszczonej w osobnym pliku). Kopie zapasowe mają trafiać do określonego (w zmiennej na początku skryptu) katalogu na zdalnej maszynie. Każdorazowe uruchomienie skryptu ma tworzyć katalog z datą uruchomienia skryptu do którego trafiają zmienione od ostatniego uruchomienia skryptu pliki. Po wykonaniu kopii skrypt ma stworzyć plik z listą plików usuniętych od ostatniego uruchomienia skryptu, plik z listą zmienionych plików oraz plik z listą nowych plików, pod nazwami składającymi się z daty uruchomienia skryptu oraz przyrostków ''.del'', ''.mod'' i ''.new''. \\ W trakcie działania skrypt ma wypisywać co robi. \\ W skrypcie należy użyć programu ''rsync'' z opcjami ''--backup'' i ''--backup-dir'' (oraz zaleca się skorzystać z programów ''find'' i ''comm''). **~~Temat.#~~** Porządkowanie zdjęć \\ Skrypt przyjmuje jako pierwszy argument katalog docelowy, a jako kolejne listę katalogów źródłowych. \\ Skrypt ma porządkować katalog ze zdjęciami. Ma przenieść każdy plik z katalogów źródłowych (rekurencyjnie) do podkatalogu ''rok/miesiąc/dzień'' w katalogu docelowym i zmienić plikom nazwy na ''godzina_minuta_sekunda__//stara_nazwa//''. Jako datę skrypt ma brać dane EXIF (CreateDate, DateTimeOriginal) lub datę modyfikacji pliku jeśli plik nie ma danych EXIF. Jeśli dwa pliki z katalogów źródłowych mają tę samą nazwę i daty, skrypt ma dodawać na koniec nazwy (przed rozszerzenie) kolejne numery tak żeby nie stracić żadnego pliku. \\ W trackie pracy skrypt ma wypisywać linię ''plik źródłowy --> plik docelowy'' \\ W zadaniu zaleca się skorzystać z programu ''exiftool''. **~~Temat.#~~** Konfiguracja powłoki \\ Przygotuj plik ''.bashrc'' który dla sesji interaktywnej ustawia kilka użytecznych aliasów, ustawi ładny prompt, zmieni długość historii, doda dodatkowe katalogi do zmiennej PATH, utworzy przynajmniej jedną użyteczną funkcję (np. tworzącą katalog i wchodzącą do niego) i wyświetli coś na ekranie (np. bieżącą zajętość dysków, fortunkę). **~~Temat.#~~** Porównanie metod kompresji \\ Skrypt przyjmuje jeden argument – nazwę pliku. \\ Skrypt kompresuje podany plik używając przynajmniej programów ''gzip'', ''bzip2'', ''xz'' i''zstd'' z przynajmniej trzema ustawieniami (profilami) dla każdego z tych programów (np. domyślne ustawienia, najwyższy poziom kompresji, średni poziom kompresji i użycie wielu wątków). Skrypt mierzy czas kompresji i rozmiar skompresowanych plików. \\ Na ekran wyświetlane są tabele czasu kompresji i poziomu kompresji mające w kolumnach nazwy programów a w wierszach profile. **~~Temat.#~~** Wyszukiwanie identycznych plików \\ Skrypt przyjmuje jako argument listę katalogów. \\ Skrypt przeszukuje rekurencyjnie podane katalogi w poszukiwaniu identycznych plików. Najpierw grupuje znalezione pliki rozmiarami, następnie w każdej grupie w której jest więcej niż jeden plik liczy sumy md5 każdego pliku. Jeśli dwa lub więcej plików ma tę samą sumę md5, porównuje je dla pewności programem ''cmp''. \\ Skrypt wypisuje na standardowe wyjście grupy identycznych plików (każda nazwa w osobnej linii) oddzielone od siebie pustą linią. **~~Temat.#~~** Sprawdzanie czy program generuje poprawny wynik \\ Skrypt przyjmuje jako argument nazwę polecenia. \\ Skrypt z pliku (o nazwie ustawionej jako zmienna na początku skryptu) czyta kolejno ścieżki do pliku z poprawnymi wynikami oraz listę argumentów z którymi takie wyniki powinny zostać otrzymane. Dla każdego takiego pliku skrypt uruchamia podane polecenie z odpowiadającymi argumentami i porównuje wynik polecenia z oczekiwanym. \\ Skrypt wyświetla na standardowym wyjściu kolejne nazwy plików z oczekiwanymi wynikami i jeśli testowany program wygenerował poprawne wyniki, to dodaje słowo ''pass'', a jeśli nie, dodaje na czerwono słowo ''FAIL'' i wypisuje pierwszą różniącą się linię. **~~Temat.#~~** Histogram odpowiedzi w pytaniach z kolokwium. \\ Skrypt przyjmuje jako argument ścieżkę do pliku z wynikami kolokwium. Przykładowy plik wejściowy zamieszczony jest poniżej. Fragment ''Q14[A+,D-]'' oznacza, że w pytaniu 14 zaznaczono poprawną odpowiedź A i błędną D. \\ Skrypt dla każdego pytania liczy ile razy padła dana odpowiedź, następnie wypisuje nazwę pytania i dla każdej odpowiedzi wypisuje linię składającą się z odpowiedniej litery i znaku ''='' powtórzonego tyle razy ile ta odpowiedź została zaznaczona. Linie z poprawnymi odpowiedziami mają być wypisane kolorem zielonym, z błędnymi kolorem czerwonym. \\ <html><a class="folder" href="#folded_b4309ce23b05322cc91df4196088516a_1">Przykładowy plik wejściowy</a> <div class="folded hidden" id="folded_b4309ce23b05322cc91df4196088516a_1"> <pre style="line-height:1em"> 07.16.52:8.6:17:Q6[A+](1);Q85[A+](1);Q83[E-](0);Q80[D+](1);Q58[E+](1);Q26[D-](0);Q61[D-](0);Q4[B+,A+](1);Q77[A+](1);Q69[B+](1);Q31[F+](1);Q94[A+](1);Q28[A+](1);Q57[D-,C-](0);Q70[D-,B+](0.5);Q23[A+](1);Q16[C-](0);Q89[C-](0);Q48[A+](1);Q20[D-](0);Q46[E-,B+](0.5);Q67[C+](1);Q40[B+,A+](1);Q12[A+](1);Q54[C-](0);Q39[A+](1) 07.18.23:10.1:19.5:Q79[D+](1);Q73[D+](1);Q29[A+](1);Q55[D+](1);Q84[E-](0);Q18[A+](1);Q91[A+](1);Q60[D+](1);Q5[A+](1);Q3[A+,B+](1);Q22[B-](0);Q44[A+,B-](0.5);Q50[B+](1);Q37[E-](0);Q40[A+,B+](1);Q63[C+](1);Q70[B+,A+](1);Q26[D-](0);Q66[B+](1);Q15[D-](0);Q35[C+](1);Q51[A+](1);Q81[B+,A+](1);Q89[A+](1);Q69[E-](0);Q12[A+](1) 07.19.14:10.8:17:Q59[C+](1);Q32[A+](1);Q13[A+](1);Q41[B-](0);Q69[B+](1);Q27[C-](0);Q85[A+](1);Q23[A+](1);Q47[F-,B+](0.5);Q7[D-](0);Q65[G-,E+](0.5);Q3[B+,A+](1);Q57[C-,A+](0.5);Q80[D+](1);Q48[A+](1);Q53[A-](0);Q20[B-](0);Q89[A+](1);Q62[B+](1);Q12[A+](1);Q81[H-,B+](0.5);Q77[A+](1);Q91[A+](1);Q30[A+](1);Q37[C-](0);Q71[E-](0) 07.20.12:12:16.5:Q54[E-](0);Q84[A+](1);Q10[F-](0);Q25[D-](0);Q39[A+](1);Q74[E-](0);Q72[A+](1);Q43[A+,E-](0.5);Q63[C+](1);Q4[B+,A+](1);Q55[D+](1);Q29[A+](1);Q49[E+](1);Q60[D+](1);Q16[A+](1);Q87[A+](1);Q7[D-](0);Q22[B-](0);Q68[B+](1);Q79[D+](1);Q34[D-](0);Q83[E-](0);Q40[A+,B+](1);Q20[D-](0);Q90[A+](1);Q64[C+,E+](1) 07.22.06:13.7:19:Q62[B+](1);Q80[D+](1);Q68[B+](1);Q10[B+](1);Q56[E+](1);Q72[A+](1);Q26[D-](0);Q33[E-,D+](0.5);Q42[A+](1);Q89[A+](1);Q67[C+](1);Q7[D-](0);Q86[B-](0);Q82[A+,D-](0.5);Q16[A+](1);Q17[A+](1);Q38[B-](0);Q59[C+](1);Q29[A+](1);Q54[D-](0);Q91[A+](1);Q49[E+](1);Q22[B-](0);Q43[A+,D+](1);Q73[D+](1);Q1[F+,A+](1) 07.23.10:14.9:24:Q91[A+](1);Q68[B+](1);Q60[D+](1);Q1[F+,A+](1);Q48[A+](1);Q17[A+](1);Q6[A+](1);Q39[A+](1);Q80[D+](1);Q88[A+](1);Q30[A+](1);Q84[A+](1);Q45[D+,B+](1);Q57[A+,C-](0.5);Q63[C+](1);Q27[B+](1);Q65[B+,A-](0.5);Q72[C-](0);Q83[A+](1);Q53[B+](1);Q16[A+](1);Q11[A+](1);Q32[A+](1);Q73[D+](1);Q22[A+](1);Q41[A+](1) 07.23.33:15.2:21:Q39[A+](1);Q40[B+,A+](1);Q79[D+](1);Q68[B+](1);Q60[D+](1);Q62[B+](1);Q50[B+](1);Q43[D+,A+](1);Q19[D-](0);Q9[A+](1);Q3[B+,A+](1);Q33[D+,B+](1);Q74[D+](1);Q88[A+](1);Q29[A+](1);Q91[A+](1);Q8[A+](1);Q64[C+,E+](1);Q56[E+](1);Q27[C-](0);Q81[B+,A+](1);Q84[B-](0);Q23[A+](1);Q72[C-](0);Q14[B+,A+](1);Q53[A-](0) 07.24.54:16.7:23.5:Q75[A+](1);Q63[C+](1);Q80[D+](1);Q72[A+](1);Q25[A+](1);Q85[A+](1);Q6[A+](1);Q55[D+](1);Q67[C+](1);Q82[C-,A+](0.5);Q34[A+](1);Q69[B+](1);Q3[A+,B+](1);Q89[A+](1);Q60[D+](1);Q21[A+](1);Q50[B+](1);Q42[A+](1);Q12[A+](1);Q18[A+](1);Q37[A-](0);Q29[A+](1);Q51[A+](1);Q47[B+,D+](1);Q91[A+](1);Q16[C-](0) 07.25.14:16.9:19:Q9[A+](1);Q71[A+](1);Q82[C-,A+](0.5);Q59[C+](1);Q63[C+](1);Q49[E+](1);Q26[D-](0);Q8[C-](0);Q15[C-,D-](0);Q3[B+,A+](1);Q87[A+](1);Q40[B+,A+](1);Q18[A+](1);Q44[A+,E-](0.5);Q28[A+](1);Q22[A+](1);Q66[A-](0);Q55[D+](1);Q79[D+](1);Q92[A+](1);Q39[A+](1);Q68[B+](1);Q85[A+](1);Q34[A+](1);Q51[B-](0);Q73[C-](0) 07.25.28:17.2:20.5:Q90[A+](1);Q38[C-](0);Q53[A-](0);Q87[A+](1);Q50[B+](1);Q62[B+](1);Q27[A-](0);Q7[C-](0);Q73[D+](1);Q59[C+](1);Q18[A+](1);Q1[F+,A+](1);Q78[D+](1);Q42[A+](1);Q72[A+](1);Q23[A+](1);Q56[E+](1);Q43[A+,D+](1);Q35[C+](1);Q69[B+](1);Q10[B+](1);Q14[C-,D-](0);Q85[A+](1);Q64[E+,F-](0.5);Q82[B+,A+](1);Q29[A+](1) 07.25.47:17.4:20:Q63[C+](1);Q93[B-](0);Q70[B+,D-](0.5);Q85[A+](1);Q74[E-](0);Q87[D-](0);Q53[A-](0);Q50[B+](1);Q34[A+](1);Q18[A+](1);Q80[D+](1);Q5[A+](1);Q81[A+,B+](1);Q67[C+](1);Q23[A+](1);Q14[A+,D-](0.5);Q55[D+](1);Q42[A+](1);Q27[A-](0);Q28[A+](1);Q1[F+,A+](1);Q60[D+](1);Q10[B+](1);Q37[B+](1);Q68[B+](1);Q47[D+,B+](1) 07.30.21:22.1:16.5:Q69[B+](1);Q57[C-,B+](0.5);Q23[A+](1);Q33[D+,B+](1);Q83[E-](0);Q9[A+](1);Q30[A+](1);Q27[B+](1);Q8[C-](0);Q18[A+](1);Q78[D+](1);Q38[C-](0);Q14[D-,A+](0.5);Q87[A+](1);Q85[A+](1);Q76[D-](0);Q48[A+](1);Q1[A+,F+](1);Q67[C+](1);Q52[C-](0);Q42[A+](1);Q62[B+](1);Q93[D-](0);Q43[E-,A+](0.5);Q71[D-](0);Q59[B-](0) 07.31.09:22.9:17.5:Q42[B-](0);Q60[D+](1);Q33[B+,D+](1);Q84[A+](1);Q21[E-](0);Q79[D+](1);Q17[A+](1);Q14[C-,D-](0);Q61[C-](0);Q82[D-,A+](0.5);Q6[A+](1);Q88[A+](1);Q56[C-](0);Q9[A+](1);Q51[A+](1);Q73[D+](1);Q48[A+](1);Q44[C+,A+](1);Q70[B+,A+](1);Q68[B+](1);Q26[D-](0);Q29[C-](0);Q39[A+](1);Q1[A+,F+](1);Q94[D-](0);Q65[B+,E+](1) 07.31.24:23.1:25:Q16[A+](1);Q62[B+](1);Q11[A+](1);Q58[E+](1);Q94[A+](1);Q45[B+,D+](1);Q23[A+](1);Q80[D+](1);Q87[A+](1);Q30[A+](1);Q49[E+](1);Q57[A+,B+](1);Q1[A+,F+](1);Q41[A+](1);Q76[A+](1);Q6[A+](1);Q82[A+,B+](1);Q27[C-](0);Q32[A+](1);Q64[E+,C+](1);Q38[A+](1);Q70[A+,B+](1);Q84[A+](1);Q69[B+](1);Q20[A+](1);Q54[B+](1) 09.02.43:7.2:20.5:Q78[D+](1);Q91[A+](1);Q20[D-](0);Q52[B+](1);Q4[B+,A+](1);Q71[E-](0);Q31[F+](1);Q28[A+](1);Q49[E+](1);Q58[A-](0);Q9[A+](1);Q25[B-](0);Q61[A+](1);Q5[A+](1);Q76[A+](1);Q89[A+](1);Q66[B+](1);Q81[B+,A+](1);Q86[A+](1);Q41[A+](1);Q23[A+](1);Q69[B+](1);Q46[B+,A-](0.5);Q14[D-,C-](0);Q57[A+,B+](1);Q38[A+](1) 09.04.59:9.5:12.5:Q87[A+](1);Q46[C-,A-](0);Q41[E-](0);Q28[A+](1);Q54[C-](0);Q12[A+](1);Q49[E+](1);Q20[D-](0);Q8[B-](0);Q83[E-](0);Q72[A+](1);Q57[B+,D-](0.5);Q64[E+,C+](1);Q69[A-](0);Q86[C-](0);Q16[A+](1);Q4[B+,A+](1);Q25[D-](0);Q63[C+](1);Q74[E-](0);Q38[B-](0);Q21[E-](0);Q80[D+](1);Q91[A+](1);Q58[B-](0);Q33[D+,B+](1) 09.05.50:10.2:15:Q1[B-,F+](0.5);Q42[A+](1);Q33[F-,B+](0.5);Q38[D-](0);Q30[A+](1);Q50[E-](0);Q20[D-](0);Q23[A+](1);Q11[A+](1);Q61[A+](1);Q67[C+](1);Q44[B-,D-](0);Q86[A+](1);Q68[B+](1);Q72[A+](1);Q56[E+](1);Q6[A+](1);Q81[E-,H-](0);Q60[D+](1);Q88[A+](1);Q76[D-](0);Q16[B-](0);Q90[A+](1);Q52[C-](0);Q78[C-](0);Q26[B-](0) 09.06.11:10.6:20:Q94[D-](0);Q6[A+](1);Q89[A+](1);Q21[A+](1);Q53[A-](0);Q10[F-](0);Q70[C-,B+](0.5);Q27[C-](0);Q69[B+](1);Q15[D-,B+](0.5);Q34[B-](0);Q37[B+](1);Q61[A+](1);Q42[A+](1);Q79[D+](1);Q49[E+](1);Q29[A+](1);Q81[B+,A+](1);Q43[D+,A+](1);Q60[D+](1);Q55[D+](1);Q18[A+](1);Q64[C+,E+](1);Q77[A+](1);Q4[A+,B+](1);Q84[A+](1) 09.06.12:10.7:16:Q34[E-](0);Q72[B-](0);Q29[C-](0);Q85[A+](1);Q94[A+](1);Q24[A+](1);Q67[C+](1);Q49[E+](1);Q88[A+](1);Q39[A+](1);Q17[B-](0);Q68[B+](1);Q1[A+,F+](1);Q57[F-,B+](0.5);Q61[D-](0);Q8[A+](1);Q22[B-](0);Q81[B+,A+](1);Q14[D-,C-](0);Q52[B+](1);Q40[B+,F-](0.5);Q60[D+](1);Q79[D+](1);Q73[B-](0);Q46[A-,E-](0);Q12[A+](1) 09.07.17:11.8:15:Q72[A+](1);Q19[D-](0);Q48[A+](1);Q21[E-](0);Q3[A+,B+](1);Q46[D+,A-](0.5);Q54[D-](0);Q15[D-,B+](0.5);Q64[D-,C+](0.5);Q80[D+](1);Q36[D+](1);Q10[F-](0);Q61[A+](1);Q92[A+](1);Q27[A-](0);Q8[](0);Q81[G-,B+](0.5);Q59[C+](1);Q57[A+,B+](1);Q29[A+](1);Q35[C+](1);Q89[D-](0);Q41[B-](0);Q75[D-](0);Q85[A+](1);Q69[B+](1) 09.07.36:12.1:18.5:Q49[E+](1);Q83[E-](0);Q6[A+](1);Q37[B+](1);Q85[A+](1);Q61[A+](1);Q78[D+](1);Q87[A+](1);Q9[B-](0);Q35[C+](1);Q41[D-](0);Q16[B-](0);Q73[C-](0);Q53[A-](0);Q24[A+](1);Q23[A+](1);Q60[D+](1);Q66[B+](1);Q55[D+](1);Q71[A+](1);Q46[B+,F-](0.5);Q91[A+](1);Q28[A+](1);Q19[D-](0);Q4[B+,A+](1);Q69[B+](1) 09.11.55:16.4:14:Q29[A+](1);Q9[F-](0);Q1[F+,A+](1);Q78[B-](0);Q71[D-](0);Q58[A-](0);Q73[C-](0);Q18[A+](1);Q91[A+](1);Q41[A+](1);Q48[A+](1);Q6[A+](1);Q13[A+](1);Q87[D-](0);Q54[D-](0);Q24[B-](0);Q36[D+](1);Q32[A+](1);Q45[D+,B+](1);Q82[D-,A+](0.5);Q65[E+,F-](0.5);Q61[D-](0);Q84[E-](0);Q55[D+](1);Q21[E-](0);Q68[B+](1) 09.13.46:18.2:22:Q57[A+,B+](1);Q30[A+](1);Q37[B+](1);Q1[A+,F+](1);Q58[A-](0);Q10[B+](1);Q82[B+,A+](1);Q51[C-](0);Q41[A+](1);Q34[A+](1);Q69[B+](1);Q86[A+](1);Q88[C-](0);Q13[A+](1);Q7[A+](1);Q23[A+](1);Q61[A+](1);Q78[D+](1);Q72[A+](1);Q24[A+](1);Q43[D+,A+](1);Q67[C+](1);Q90[A+](1);Q48[A+](1);Q75[A+](1);Q19[D-](0) 09.15.25:19.8:19.5:Q49[A-](0);Q66[B+](1);Q82[A+,E-](0.5);Q90[A+](1);Q56[F-](0);Q6[A+](1);Q11[D-](0);Q40[B+,A+](1);Q68[B+](1);Q16[A+](1);Q77[A+](1);Q25[A+](1);Q89[B-](0);Q4[B+,A+](1);Q78[D+](1);Q32[A+](1);Q85[A+](1);Q70[B+,A+](1);Q22[B-](0);Q17[A+](1);Q60[F-](0);Q53[B+](1);Q30[A+](1);Q61[A+](1);Q37[B+](1);Q43[A+,D+](1) 09.17.13:21.7:19.5:Q43[B-,D+](0.5);Q42[A+](1);Q7[C-](0);Q54[D-](0);Q60[F-](0);Q79[D+](1);Q88[A+](1);Q48[A+](1);Q56[E+](1);Q9[A+](1);Q29[B-](0);Q64[D-,C+](0.5);Q69[B+](1);Q25[A+](1);Q21[A+](1);Q85[A+](1);Q33[D+,B+](1);Q81[B+,A+](1);Q94[A+](1);Q3[B+,A+](1);Q17[A+](1);Q70[A+,B+](1);Q37[B+](1);Q15[D-,B+](0.5);Q76[C-](0);Q61[A+](1) 09.18.56:23.3:20.5:Q9[A+](1);Q81[A+,B+](1);Q21[E-](0);Q4[B+,A+](1);Q84[A+](1);Q71[A+](1);Q69[B+](1);Q33[E-,D+](0.5);Q90[A+](1);Q66[B+](1);Q51[B-](0);Q39[A+](1);Q48[A+](1);Q80[D+](1);Q55[D+](1);Q44[A+,C+](1);Q18[A+](1);Q76[A+](1);Q62[B+](1);Q27[D-](0);Q58[A-](0);Q41[A+](1);Q88[A+](1);Q30[A+](1);Q6[A+](1);Q15[D-,C-](0) 09.20.33:24.9:15.5:Q78[D+](1);Q58[A-](0);Q35[C+](1);Q30[D-](0);Q37[A-](0);Q54[B+](1);Q5[C-](0);Q21[A+](1);Q25[C-](0);Q66[B+](1);Q20[A+](1);Q48[A+](1);Q63[B-](0);Q87[A+](1);Q12[A+](1);Q42[B-](0);Q86[C-](0);Q73[B-](0);Q57[B+,D-](0.5);Q83[D-](0);Q2[A+,E+](1);Q13[A+](1);Q44[C+,A+](1);Q91[A+](1);Q68[B+](1);Q72[A+](1) 12.48.03:14.4:18:Q16[B-](0);Q63[C+](1);Q77[D-](0);Q59[C+](1);Q57[B+,A+](1);Q2[A+,E+](1);Q6[A+](1);Q22[B-](0);Q50[A-](0);Q80[B-](0);Q41[A+](1);Q53[B+](1);Q91[A+](1);Q85[A+](1);Q29[A+](1);Q46[D+,B+](1);Q31[F+](1);Q11[A+](1);Q67[C+](1);Q89[A+](1);Q83[B-](0);Q20[A+](1);Q72[B-](0);Q26[D-](0);Q39[A+](1);Q69[B+](1) 12.53.22:19.7:12:Q6[B-](0);Q9[A+](1);Q19[D-](0);Q80[B-](0);Q73[A-](0);Q23[A+](1);Q48[A+](1);Q71[A+](1);Q34[D-](0);Q67[C+](1);Q28[B-](0);Q89[B-](0);Q81[B+,A+](1);Q63[A-](0);Q26[B-](0);Q37[C-](0);Q15[D-,C-](0);Q55[D+](1);Q54[B+](1);Q69[B+](1);Q93[D-](0);Q43[A+,D+](1);Q60[F-](0);Q4[A+,B+](1);Q86[C-](0);Q42[A+](1) 12.53.36:20.5:14:Q19[A+](1);Q77[A+](1);Q55[A-](0);Q45[D+,A-](0.5);Q36[D+](1);Q94[A+](1);Q85[A+](1);Q78[D+](1);Q48[A+](1);Q4[A+,B+](1);Q83[D-](0);Q61[E-](0);Q53[A-](0);Q5[A+](1);Q29[C-](0);Q41[C-](0);Q72[B-](0);Q58[A-](0);Q68[B+](1);Q31[F+](1);Q25[A+](1);Q11[C-](0);Q13[B-](0);Q65[B+,F-](0.5);Q88[A+](1);Q21[E-](0) 12.54.10:20.5:16.5:Q29[D-](0);Q68[B+](1);Q50[E-](0);Q45[A-,D+](0.5);Q62[B+](1);Q25[D-](0);Q66[B+](1);Q55[D+](1);Q6[A+](1);Q53[A-](0);Q31[F+](1);Q70[A+,B+](1);Q19[D-](0);Q21[A+](1);Q83[C-](0);Q13[A+](1);Q88[A+](1);Q73[B-](0);Q39[A+](1);Q60[D+](1);Q79[D+](1);Q42[A+](1);Q1[F+,A+](1);Q86[C-](0);Q90[A+](1);Q11[D-](0) 12.55.36:22.1:19.5:Q68[B+](1);Q85[A+](1);Q24[A+](1);Q72[A+](1);Q23[A+](1);Q18[A+](1);Q48[A+](1);Q53[A-](0);Q80[D+](1);Q30[A+](1);Q59[C+](1);Q12[A+](1);Q13[A+](1);Q4[A+,B+](1);Q61[A+](1);Q36[D+](1);Q56[C-](0);Q40[B+,A+](1);Q83[C-](0);Q87[D-](0);Q35[A-](0);Q92[A+](1);Q47[B+](0.5);Q67[C+](1);Q75[E-](0);Q5[A+](1) 12.55.36:22.1:17.5:Q34[E-](0);Q60[D+](1);Q72[C-](0);Q78[D+](1);Q18[A+](1);Q49[E+](1);Q93[C-](0);Q2[E+,A+](1);Q40[B+,A+](1);Q44[A+,D-](0.5);Q25[A+](1);Q84[A+](1);Q61[B-](0);Q57[A+,B+](1);Q7[B-](0);Q67[C+](1);Q77[A+](1);Q38[B-](0);Q83[E-](0);Q89[A+](1);Q28[A+](1);Q23[A+](1);Q69[B+](1);Q54[B+](1);Q15[B+,A+](1);Q11[D-](0) 12.55.42:20.7:15.5:Q55[D+](1);Q25[B-](0);Q82[E-,A+](0.5);Q38[B-](0);Q59[B-](0);Q80[C-](0);Q91[A+](1);Q42[A+](1);Q45[B+,E-](0.5);Q12[B-](0);Q72[B-](0);Q31[F+](1);Q53[A-](0);Q84[A+](1);Q62[B+](1);Q3[A+,B+](1);Q23[A+](1);Q88[A+](1);Q48[A+](1);Q76[A+](1);Q30[C-](0);Q68[B+](1);Q65[E+,F-](0.5);Q6[B-](0);Q16[A+](1);Q19[A+](1) 12.56.24:22.7:13:Q65[B+,F-](0.5);Q7[D-](0);Q85[A+](1);Q29[A+](1);Q27[C-](0);Q38[B-](0);Q62[C-](0);Q4[B+,A+](1);Q59[B-](0);Q53[A-](0);Q56[C-](0);Q49[E+](1);Q77[A+](1);Q32[A+](1);Q93[C-](0);Q72[E-](0);Q89[A+](1);Q47[C-,B+](0.5);Q16[A+](1);Q69[B+](1);Q20[C-](0);Q12[A+](1);Q79[D+](1);Q42[A+](1);Q83[C-](0);Q23[B-](0) 12.57.35:23.8:19.5:Q29[A+](1);Q70[B+,A+](1);Q79[D+](1);Q16[A+](1);Q23[A+](1);Q41[B-](0);Q48[A+](1);Q77[A+](1);Q60[C-](0);Q31[D-](0);Q53[A-](0);Q12[A+](1);Q18[A+](1);Q68[B+](1);Q82[A+,E-](0.5);Q93[A+](1);Q45[B+,D+](1);Q1[A+,F+](1);Q62[B+](1);Q67[C+](1);Q8[A+](1);Q56[B-](0);Q38[A+](1);Q89[A+](1);Q85[A+](1);Q26[B-](0) 12.57.45:24.1:17:Q31[F+](1);Q8[C-](0);Q9[A+](1);Q49[E+](1);Q62[B+](1);Q28[A+](1);Q40[C-,F-](0);Q43[A+,D+](1);Q57[B+,A+](1);Q79[D+](1);Q22[A+](1);Q26[B-](0);Q39[A+](1);Q71[E-](0);Q75[A+](1);Q93[D-](0);Q17[D-](0);Q3[B+,A+](1);Q83[C-](0);Q52[B+](1);Q69[B+](1);Q14[D-,C-](0);Q86[A+](1);Q89[A+](1);Q64[E+,C+](1);Q60[C-](0) 12.57.51:24.3:22:Q54[B+](1);Q76[A+](1);Q2[A+,E+](1);Q38[A+](1);Q12[A+](1);Q57[A+,B+](1);Q72[D-](0);Q5[A+](1);Q68[B+](1);Q49[E+](1);Q60[D+](1);Q33[E-,D+](0.5);Q30[C-](0);Q87[E-](0);Q94[A+](1);Q41[A+](1);Q62[B+](1);Q19[A+](1);Q64[E+,C+](1);Q23[A+](1);Q79[D+](1);Q25[A+](1);Q82[A+,B+](1);Q13[A+](1);Q46[A-,B+](0.5);Q84[A+](1) 12.58.05:24.6:17:Q17[A+](1);Q36[D+](1);Q9[A+](1);Q85[A+](1);Q30[D-](0);Q52[C-](0);Q26[C-](0);Q8[C-](0);Q73[D+](1);Q22[B-](0);Q67[C+](1);Q45[C-,B+](0.5);Q49[E+](1);Q42[A+](1);Q16[A+](1);Q62[B+](1);Q34[A+](1);Q88[C-](0);Q72[B-](0);Q56[C-](0);Q78[D+](1);Q69[B+](1);Q59[C+](1);Q1[A+,F+](1);Q82[E-,A+](0.5);Q91[A+](1) 12.58.40:25.2:11:Q2[E+,A+](1);Q63[A-](0);Q82[B+,C-](0.5);Q20[B-](0);Q14[C-,D-](0);Q86[A+](1);Q38[A+](1);Q11[C-](0);Q22[E-](0);Q78[A-](0);Q90[A+](1);Q43[D+,A+](1);Q30[C-](0);Q87[E-](0);Q52[C-](0);Q72[B-](0);Q64[B-,E+](0.5);Q32[A+](1);Q41[A+](1);Q75[A+](1);Q56[D-](0);Q8[C-](0);Q48[A+](1);Q58[A-](0);Q27[D-](0);Q69[B+](1) 13.01.07:27.4:15.5:Q89[C-](0);Q90[A+](1);Q9[D-](0);Q7[D-](0);Q80[D+](1);Q18[A+](1);Q36[F-](0);Q4[B+,A+](1);Q33[F-,B+](0.5);Q54[C-](0);Q59[C+](1);Q24[A+](1);Q30[A+](1);Q83[B-](0);Q13[A+](1);Q69[B+](1);Q74[B-](0);Q64[E+,C+](1);Q47[B+,D+](1);Q63[C+](1);Q48[A+](1);Q41[C-](0);Q84[A+](1);Q72[A+](1);Q57[C-,F-](0);Q22[B-](0) </pre></div></html> **~~Temat.#~~** Przypomnienie o najbliższych urodzinach. \\ Skrypt korzysta z pliku w którym znajdują się cykliczne wydarzenia – daty i opisy (format pliku dowolny, przykład formatu: ''12.31 imieniny Sylwestra''). \\ Skrypt wyświetla wszystkie linie z pliku które dotyczą najbliższych dwóch tygodni, lub jeśli w przeciągu dwóch tygodni nie ma żadnych wydarzeń, wyświetla trzy najbliższe wydarzenia. ~~META: language = pl ~~
so/skrypty_tematy.1685356132.txt.gz
· ostatnio zmienione: 2023/05/29 12:28 przez
jkonczak
Narzędzia strony
Pokaż stronę
Poprzednie wersje
Odnośniki
Złóż / rozłóż wszystko
Do góry