Z1 Dane są dwa pliki tekstowe A i B. Linie w plikach są unikalne (w żadnym z plików żadna linia nie występuje dwa razy). Napisz komendę basha, która wypisuje: - linie które występują w A a nie występują w B - linie które występują w B a nie występują w A - linie które występują w A i występują w B 1. Oszacuj złożoność obliczeniową rozwiązania. 2. Przetestuje je na danych wejściowych zawierających około 1.000 linii, 10.000 linii, 100.000 linii, 1.000.000 linii. 3. Zaproponuj rozwiązanie, które realizuje zadaną funkcjonalność w jednym poleceniu, bez używania systemu plików, bez otwierania dodatkowych strumieni. Przykład: A => a1 b1 B=> b1 a2 Wynik 1 => a1 Wynik 2 => a2 Wynik 3 => b1 Z2 Napisz to samo w C. Z3 Dane są dwa katalogi A i B. Napisz skrypt w bash, który wypisze pliki, które są w A a nie ma ich w B, przy założeniu, że interesują nas tylko ścieżki względne do plików razem z nazwami. Jak ten problem ma się do poprzedniego problemu? Przykład: A = /root B = /tmp Pliki /root/a/x.txt i /tmp/a/x.txt są takie same, natomiast /root/b/x.txt jest inny. Z4 Dane są dwa katalogi A i B. Napisz skrypt w bash, który wypisze pliki, które są w A a nie ma ich w B, przy założeniu, że interesują nas zarówno nazwy jak i zawartość (dwa pliki są takie same jeśli mają tą samą ścieżkę względną łącznie z nazwą od korzenia wskazanego katalogu oraz mają taką samą zawartość). Jak ten problem ma się do poprzednich problemów? Z5 Dane są dwa katalogi A i B. Napisz skrypt w bash, który wypisze pliki, które są w A a nie ma ich w B, przy założeniu, że interesują nas zarówno nazwy jak i zawartość (dwa pliki są takie same jeśli mają taką samą zawartość). Jak ten problem ma się do poprzednich problemów? Z6 Problem najkrótszego ciągu dodawań, czyli operacji w postaci [cat nazwa1 nazwa2 > nazwa3], aby ostągnąć zadany wynik. Napisać skrypt w bash, który bierze jako parametry liczbę N oraz plik A, w którym w każdej z linii znajdują się trzy liczby Pi, Qi i Ri, a następnie tworzy pliki P0 i Q0 z jedną linią, wykonuje sekwencję operacji cat Pi Q1 > Ri i sprawdza, czy w ostatnim utworzonym pliku znajduje się dokładnie N linii. Przykład. ./skrypt 6 A => 1 1 2 2 1 3 3 3 6 Prawdą jest, że liczby nie muszą odpowiadać ilości linii, równie dobrze będzie działało np. to: A => 100 100 5 5 100 77 77 77 1500 Z7 Napisz to samo, ale bez zapisywania czegokolwiek w systemie plików.