Projekty

1. Fiszki

Skrypt do samodzielnego uczenia się słówek w języku obcym.

Użytkownik podaje listę słówek przez argumenty lub w wypadku ich braku przez wejście standardowe. Liczba plików jaką może podać użytkownik jest nieograniczona. W danych wejściowych każdy wiersz składa się ze słowa w języku rodzimym, separatora i słowa w języku obcym. Użytkownik może zdefiniować separator przez parametr.

Skrypt pokazuje słowo w języku rodzimym. Użytkownik wpisuje odpowiadające mu słowo w języku obcym. Skrypt porównuje odpowiedź użytkownika ze wzorem i inforumje o poprawności odpowiedzi. Użytkownik może określić przez parametr że chce aby były pokazywane słowa w języku obcym i sprawdzane słowa w wyniku obcym. Użytkownik może także za pomocą parametrów wyspecyfikować czy słowo które jest wypisywane na ekran ma być również wypowiedziane przez komputer (za pomocą syntezatora mowy) lub tylko wypowiedziane bez wyświetlania.

Po sprawdzeniu wszystkich słów skrypt wypisuje na ekran informacje o liczbie poprawnych odpowiedzi, liczbie błędnych odpowiedzi i wyniku w procentach.

Skrypt wyświetla pomoc (wszystkie parametry i ich objaśnienia) jeśli użytkownik poda parametr -h.

[espeak, carnival]

2. Usuwanie powtórzeń

Skrypt do identyfikacji i usuwania powtarzających się plików.

Skrypt porównuje ze sobą nawzajem wszystkie pliki w danych lokalizacjach i określa czy isnieją tam inne pliki które mają dokładnie taką samą treść. Użytkownik podaje ścieżki do plików i/lub katalogów w systemie które skrypt ma przejrzeć; jeśli podany został katalog, to przeglądane są także jego wszystkie podkatalogi.

Jeśli dwa pliki mają taką samą treść to wypisywany jest na ekran komunikat który identyfikuje te dwa pliki i wypisuje podstawowe informacje o nich (np. data ostatniej modyfikacji, właściciel). Użytkownik może także wyspecyfikować przez parametr inną akcje: usunięcie jednego z plików lub usunięcie jednego z plików z wcześniejszym wyborem pliku/potwierdzeniem. Użytkownik może także wyspecyfikować przez parametr żeby pliki były porównywane po nazwie zamiast po treści.

Skrypt wyświetla pomoc (wszystkie parametry i ich objaśnienia) jeśli użytkownik poda parametr -h.

[diff]

3. Katalog HTML

Skrypt tworzy listę plików konkretnego typu w formie prostej strony HTML.

Użytkownik podaje przez parametry katalogi i pliki które mają zostać skatalogowane na stronie HTML. Skrypt przegląda wszystkie pliki oraz katalogi (wraz z podkatalogami) i zbiera informacje potrzebne do wygenerowania strony HTML. Wygenerowana strona HTML zawierać ma sekcje (lub podstrony): zdjęcia, muzyka, dokumenty.

Sekcja zdjęcia zawierać ma wszystkie pliki graficzne znajdujące się podanym zbiorze plików. Każdy plik graficzny wylistowany na stronie posiadać powinien informacje o jego nazwie, dacie modyfikacji, i ścieżce, oraz miniaturę i odnośnik do pliku (file://).

Sekcje muzyka i dokumenty zawierać mają odpowiednio: wszystkie pliki dźwiękowe i pliki dokumentów (PDF, DOC, ODT) znajdujące się w podanym zbiorze plików. Każdy plik posiadać powinien informacje o nazwie, dacie modyfkacji i ścieżce oraz odnośnik do pliku.

Dodatkowo przez parametr użytkownik może podać dodatkowe sekcje do generacji. Sekcje podane przez użytkownika tworzone są na podstawie rozszerzeń plików. Np. Użytkownik może chcieć utworzyć sekcję plików TEX (o rozszerzeniu tex). Utworzone w ten sposób sekcje zawierają informacje o plikach jak muzyka/dokumenty.

Użytkownik może wyspecyfikować za pomocą parametrów czy wpisy w sekcji powinny być posortowane alfabetycznie rosnąco, malejąco lub niesortowane.

Skrypt wyświetla pomoc (wszystkie parametry i ich objaśnienia) jeśli użytkownik poda parametr -h.

[find]

4. Punkty za słowo

Skrypt sprawdza poprawność słowa i zlicza jego wartość punktową (np. do celów gry Scrabble).

Użytkownik podaje jedno lub więcej słowo jako argumenty skryptu, lub w wypadku braku argumentów, poprzez standardowe wejście skryptu (każde słowo w nowej lini).

Skrypt sprawdza każde ze słów czy występuje w słowniku (/usr/share/dict/words). Jeśli słowo wystepuje w słowniku to jest poprawne, jesli nie to jest niepoprawne. Należy odpowiednio dostosować słowo przed porównaniem (wyeliminować różnice wielkich/małych liter). Użytkownik może wyspecyfikować inny słownik przez parametr.

Dla każdego ze słów obliczana jest jego wartość punktowa. Wartość punktowa słowa to suma wartości punktowej jego wszystkich liter. Można przyjąć dowolne wartości punktowe liter, np. według http://en.wikipedia.org/wiki/Scrabble_letter_distributions

Skrypt wyświetla wynik w trzech kolumnach: w pierwszej znajduje się słowo, w drugiej napisane jest czy słowo jest poprawne czy niepoprawne, w trzeciej znajduje się jego wartość punktowa. Użytkownik może wyspecyfikować przez parametr żeby słowa niepoprawne nie otrzymywały wartości punktowej w wyniku, lub żeby wcale nie były wypisywane.

Skrypt wyświetla pomoc (wszystkie parametry i ich objaśnienia) jeśli użytkownik poda parametr -h.

[/usr/share/dict/*]

5. Graf systemu plików

Skrypt generuje graf pokazujący system plików i zależności między plikami.

Użytkownik podaje jeden lub więcej katalog który ma być narysowany. Wszystkie podane katalogi mają być zawarte na jednym grafie. Jeśli nie podany jest żaden katalog to rysowany jest cały system plików (od /).

Skrypt rysuje graf za pomocą narzędzia Graphviz. Polega to na przygotowaniu najpierw pliku opisującego graf (pliku DOT). Plik DOT ma być usuwany po narysowaniu grafu. Użytkownik może wyspecyfikować przez parametr, żeby wygenerować tylko plik DOT bez rysowania grafu.

W narysowanym grafie strzałka od pliku do katalogu ma oznaczać, że plik znajduje się w tym katalogu (plik może być również katalogiem lub linkiem). Strzałka przerywana od pliku A do pliku B oznacza, że plik A jest linkiem (symlinkiem, odnośnikiem) do pliku B. Użytkownik może za pomocą parametru określić, żeby na wynikowym grafie pokazywane były tylko zawieranie się plików w katalogach lub tylko linki.

Skrypt wyświetla pomoc (wszystkie parametry i ich objaśnienia) jeśli użytkownik poda parametr -h.

[graphviz, find]

6. Histogram

Histogram liczy wystąpienia każdego ze słów znajdujących się w danym tekście.

Użytkownik podaje pliki tekstowe przez argumenty lub w wypadku ich braku przez wejście standardowe. Liczba plików jaką może podać użytkownik jest nieograniczona. Jeśli plik jest w formatcie PDF lub PS to należy z niego wyciągnąć tekst za pomocą konwertera. Pliki inne niż tekstowe, PDF i PS mają być uznane za błędne.

Skrypt musi oczyścić teksty wejściowe należy oczyścić z elementów utrudniających liczenie słów takich jak interpunkcja i używanie wielkich i małych liter.

Użytkownik może wymagać na wyjściu listy w formie tekstowej lub jako CSV. Uzytkownik może podać ścieżkę pliku wynikowego przez parametr, lub w wypadku jego braku, skrypt wypisuje dane na standardowe wyjście. W wyniku każdy wiersz składa się ze słowa i liczby jego wystąpień w tekście.

Skrypt wyświetla pomoc (wszystkie parametry i ich objaśnienia) jeśli użytkownik poda parametr -h.

[pdftotext, pstopdf]

7. Kółko i krzyżyk

Gra w kółko i krzyżyk na jedną osobę.

Skrypt rysuje co ruch planszę do gry w kółko i krzyżyk i pyta gracza o koordynaty następnego kółka lub krzyżyka. Następnie komputer stawia krzyżyk lub kółko w jednej z pozostałych dostępnych pozycji. Gracz komputerowy może stosować prosta strategię lub działać w sposób losowy (nie ma znaczenia). W momencie gdy któryś z graczy uzyska trzy symbole w rzędzie, wierszu lub po przekątnej, lub gdy wszystkie 9 pól zostanie zajęte.

Użytkownik może poprzez parametry zdefiniować czy gra jako pierwszy oraz czy gra kółkami czy krzyżykami. Użytkownik może także przez parametry redefiniować symbole kółka i krzyżyka na dowolne inne znaki.

Po zakończeniu rozgrywki skrypt wyświetla liczbę wykonanych ruchów przez gracz i komputer oraz informację o tym kto wygrał.

Skrypt wyświetla pomoc (wszystkie parametry i ich objaśnienia) jeśli użytkownik poda parametr -h.

8. Konkordancja

Skrypt tworzy konkordancje danego tekstu. Konkordancja to lista słów znajdujących się w tekście wraz z konktekstem w którym występują (czyli np. wraz z linią w której występują).

Użytkownik podaje pliki tekstowe przez argumenty lub w wypadku ich braku przez wejście standardowe. Liczba plików jaką może podać użytkownik jest nieograniczona. Jeśli plik jest w formatcie PDF lub PS to należy z niego wyciągnąć tekst za pomocą konwertera. Pliki inne niż tekstowe, PDF i PS mają być uznane za błędne.

Skrypt musi oczyścić teksty wejściowe należy oczyścić z elementów utrudniających liczenie słów takich jak interpunkcja i używanie wielkich i małych liter.

Użytkownik może wymagać na wyjściu listy w formie tekstowej lub jako CSV. Uzytkownik może podać ścieżkę pliku wynikowego przez parametr, lub w wypadku jego braku, skrypt wypisuje dane na standardowe wyjście. W wyniku każdy wiersz składa się ze słowa i lini w której wystąpił w tekście. Użytkownik może zdefiniować japrzez parametr, żeby każde ze słów występowało w wyniku tylko raz, ale żeby wszystkie linie w których wystepuje znalazły się w tym wierszu.

Skrypt wyświetla pomoc (wszystkie parametry i ich objaśnienia) jeśli użytkownik poda parametr -h.

9. Czekanie na zmiany

Skrypt obserwuje stronę internetową i informuje kiedy pojawią się na niej zmiany.

Użytkownik podaje listę stron internetowych przez argumenty, lub zapisuje je w pliku (każda strona w osobnej lini) i podaje przez parametr. Skrypt ściąga na dysk każdą z tych stron. Następnie skrypt odczekuje 10 minut, ściąga każdą ze stron kolejny raz i porównuje nową wersję ze starą. Jeśli między wersjami stron są różnice to strona jest pokazywana użytkownikowi w przeglądarce, a skrypt znowu odczekuje 10 minut, poczem znowu sprawdza strony itp.

Użytkownik może poprzez parametry zmienić czas między sprawdzaniem stron. Może także przez parametry zmienić przeglądarkę używaną do otwarcia strony i wyspecyfikować, żeby skrypt został zakończony przy wykryciu pierwszej zmiany. Użytkownik może także wyspecyfikowac przez parametry żeby zamiast wyśiwetlać stronę w przeglądarce informacja o znalezieniu zmian została zapisana do pliku logu (dziennika) lub na ekran.

Skrypt wyświetla pomoc (wszystkie parametry i ich objaśnienia) jeśli użytkownik poda parametr -h.

Strona do testowania skryptu: tutaj.

[wget, sleep, diff]

10. Podsumowanie

Skrypt oblicza minimum, maksimum i średnią w kolumnach.

Użytkownik podaje pliki CSV przez argumenty lub w wypadku ich braku skrypt czyta treść pliku CSV ze standardowego wejścia. Liczba plików jest nieograniczona.

Dla każdej z kolumn w pliku która poza nagłówkiem zawiera tylko wartości liczbowe obliczana jest średnia, minimum i maksimum. Użytkownik może wyłączyć obliczanie dowolnych z tych wartości poprzez parametry.

Obliczone wartości średnie, minimum i maksimum z kolumn są dopisywane do kolumn których dotyczą i utworzony w ten sposób plik CSV zostaje zapisany z nazwą/ścieżką taką samą jak oryginalny plik, z postfiksem .mod. Użytkownik może zdefiniować inny postfiks przez parametr.

Skrypt wyświetla pomoc (wszystkie parametry i ich objaśnienia) jeśli użytkownik poda parametr -h.

[bc]

11. Zgadywanie stringów

Skrypt zgaduje ciąg znaków przez kilka iteracji za pomocą jednej z dwóch strategii.

Użytkownik podaje za pomocą parametrów ciąg znaków który ma zostać odgadnięty, oraz strategię która ma zostać użyta do odgadnięcia ciągu: przyrostową lub losową.

Dla strategii losowej skrypt generuje nowy string o długości tej samej co wzór co iterację i porównuje go ze wzorem podanym rpzez użytkownika. Skrypt kończy działanie jeśli są one identyczne.

Dla strategii przyrostowej skrypt generuje losowy string o długości tej samej co wzór i porównuje go ze wzorem podanym rpzez użytkownika. Wszystkie litery które są takie same są zachowywane na swoich pozycjach, natomiast wszystkie inne są losowane ponownie. Skrypt kończy działanie w momencie kiedy string będzie identyczny ze wzorem.

Użytkownik może zdefiniować przez parametry żeby losowane były tylko małe litery lub wielkie i małe litery. Należy wtedy także sprawdzić czy string wzór zawiera tylko litery wyspecyfikowane przez użytkownika i zakończyć działanie z błędem jesli tak nie jest.

Skrypt wyświetla pomoc (wszystkie parametry i ich objaśnienia) jeśli użytkownik poda parametr -h.

[grep, cmp]

12. Wstęp do plików dźwiękowych

Skrypt wkleja wstęp do plików dźwiękowych.

Użytkownik podaje przez argumenty ścieżki do plików dźwiekowych. Liczba plików jest nieograniczona. Skrypt tworzy plik dźwiękowy w którym za pomocą syntezatora mowy umieszczana jest nazwa pliku. Następnie te dwa pliki są łączone w jeden plik o nazwie takiej samej jak oryginalny plik dźwiękowy z prefiksem _. Użytkownik może zdefiniować inny prefiks za pomocą parametru. Użytkownik może także zamiast nazwy pliku zdefiniować inny tekst który powinien być zsyntezowany jako wstęp. Użytkownik może też podac konkretny plik dźwiękowy który ma być użyty jako wstęp. Użytkownik może także ustalić za pomocą parametru, żeby plik wstępu został dodany na koniec pliku zamiast na początek. Wytworzone pliki dźwiękowe zawierające tylko wstęp powinny zostać usunięte przed zakończeniem działania skryptu.

Skrypt wyświetla pomoc (wszystkie parametry i ich objaśnienia) jeśli użytkownik poda parametr -h lub nie poda żadnych argumentów.

[sox, espeak, carnival]

13. Czekanie na zakończenie działania

Skrypt czeka na zakończenie działania procesów z wykonaniem określonej akcji.

Użytkownik podaje przez argumenty PIDy procesów na których zakończenie należy czekać. Liczba PIDów jest nieograniczona. Alternatywnie zamist PIDów użytkownik może podać nazwy komend na zakończenie których należy czekać.

Skrypt co 5 minut sprawdza czy wszystkie ze wskazanych procesów już zakończyły działanie. Użytkownik może wyspecyfikować inny czas przez parametr. Może on także określić, że zamiast czekać aż wszystkie procesy zostaną zakończone akcja zostanie wykonana gdy dowolny z procesów się zakończy.

Gdy zostanie spełniony warunek wykonania akcji komenda podana przez użytkownika jako parametrzostaje wykonana, a jej argumentami są numery PID procesów które się zakończyły (niezależnie od tego czy były podane numery PID czy komendy).

Skrypt wyświetla pomoc (wszystkie parametry i ich objaśnienia) jeśli użytkownik poda parametr -h lub nie poda żadnych argumentów.

[sleep, ps]

14. Morse

Skrypt zamienia tekst na kod morse’a.

Skrypt przyjmuje tekst na standardowe wejście i wypisuje jego reprezentację w kodzie morse-a na standardowe wyjście. Skrypt umożliwia także czytanie i zapisywanie do pliku.

Użytkownik może za pomocą przełączników zdefiniować symbole.

Skrypt wyświetla pomoc (wszystkie parametry i ich objaśnienia) jeśli użytkownik poda parametr -h lub nie poda żadnych argumentów.

[aplay]