Narzędzia użytkownika

Narzędzia witryny


so:pipes_filters

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
so:pipes_filters [2025/04/16 11:58]
jkonczak [Edycja linii poleceń]
so:pipes_filters [2026/04/27 23:37] (aktualna)
jkonczak
Linia 104: Linia 104:
 że każdy program ma [[https://​en.wikipedia.org/​wiki/​Unix_philosophy|solidnie wykonywać jedno dobrze określone zadanie]]. że każdy program ma [[https://​en.wikipedia.org/​wiki/​Unix_philosophy|solidnie wykonywać jedno dobrze określone zadanie]].
 \\ \\
-Żeby zrobić skomplikowane zadania, należy podzielić je na mniejsze rozwiązywalne+Żeby zrobić skomplikowane zadania, należy podzielić je na mniejszerozwiązywalne
 przez takie proste programy. przez takie proste programy.
  
Linia 161: Linia 161:
 Dodaj na koniec poprzedniej komendy przekazanie jej wyniku do ''​cat -n''​. Dodaj na koniec poprzedniej komendy przekazanie jej wyniku do ''​cat -n''​.
  
-~~Zadanie.#​~~ Połącz w potok komendy ''​ps -eF''​ i ''​fold''​+~~Zadanie.#​~~ Połącz w potok komendy ''​ps -ef''​ i ''​fold''​
  
 ~~Zadanie.#​~~ Stwórz nazwany potok //p//. Przekieruj wejście programu ''​fold''​ ~~Zadanie.#​~~ Stwórz nazwany potok //p//. Przekieruj wejście programu ''​fold''​
Linia 216: Linia 216:
 <​small>​ <​small>​
 ''​grep''​ pozwala na wybór jednej z kilku gramatyk wyrażeń regularnych. ​ ''​grep''​ pozwala na wybór jednej z kilku gramatyk wyrażeń regularnych. ​
-POSIX [[https://​pubs.opengroup.org/​onlinepubs/​9699919799/​basedefs/​V1_chap09.html|określa]]+POSIX [[https://​pubs.opengroup.org/​onlinepubs/​9799919799/​basedefs/​V1_chap09.html|określa]]
 dwie: //basic// (domyślną) i //​extended//​ (używaną przez ''​egrep''​ i ''​grep -E''​). dwie: //basic// (domyślną) i //​extended//​ (używaną przez ''​egrep''​ i ''​grep -E''​).
-Szczegółów szukaj ​dokumentacja twojej implementacji ​komendy ''​grep''​.+\\ 
 +Podsumowanie tych gramatyk znajdziesz też Linuksie pod 
 +''​[[https://​man7.org/​linux/​man-pages/​man7/​regex.7.html|man 7 regex]]''​ oraz na 
 +[[https://​en.wikipedia.org/​wiki/​Regular_expression#​IEEE_POSIX_Standard|wikipedii]]. 
 +\\ 
 +Informację o innych gramatykach wspieranych przez twoją implementację ​komendy 
 +''​grep'' ​znajdziesz w dokumentacji konkretnej implementacji
  
 Domyślnie wyrażenia rozróżniają wielkość liter. Aby to zmienić, dodaj opcję ''​-i''​. Domyślnie wyrażenia rozróżniają wielkość liter. Aby to zmienić, dodaj opcję ''​-i''​.
Linia 277: Linia 283:
 ~~Zadanie.#​~~ Usuń z wyniku komendy ​ ~~Zadanie.#​~~ Usuń z wyniku komendy ​
 ''​egrep '​^[Ee]{2}'​ /​usr/​share/​myspell/​en_US.dic''​ ukośnik i wszystko za nim. ''​egrep '​^[Ee]{2}'​ /​usr/​share/​myspell/​en_US.dic''​ ukośnik i wszystko za nim.
 +\\ <​small>​ (Użyj pliku ''/​usr/​share/​hunspell/​en_US.dic''​ jeżeli nie masz
 +podanego wyżej pliku.)</​small>​
  
 ==== sort ==== ==== sort ====
Linia 363: Linia 371:
 ~~Zadanie.#​~~ Przefiltruj ''​man wc''​ przez ''​cat''​. Potem przefiltruj ''​man wc''​ przez ''​wc''​. Ile słów jest w ''​man wc''?​ ~~Zadanie.#​~~ Przefiltruj ''​man wc''​ przez ''​cat''​. Potem przefiltruj ''​man wc''​ przez ''​wc''​. Ile słów jest w ''​man wc''?​
  
-~~Zadanie.#​~~ Sprawdź wynik ''​wc /etc/motd /etc/SUSE-brand''​.+~~Zadanie.#​~~ Sprawdź wynik ''​wc /etc/profile ​/etc/os-release''​.
  
 ~~Zadanie.#​~~ Polecenie ''​perl -e '​printf "​%d\n",​ (int rand(6)+1)+(int rand(6)+1) for(1..100)'<​nowiki></​nowiki>''​ rzuca 100 razy 2d6. ~~Zadanie.#​~~ Polecenie ''​perl -e '​printf "​%d\n",​ (int rand(6)+1)+(int rand(6)+1) for(1..100)'<​nowiki></​nowiki>''​ rzuca 100 razy 2d6.
Linia 400: Linia 408:
 Np. ''​tr -s 123 npn <<<​ 123_132_13n_ppp''​ wypisze ''​npn_np_n_p''​. Np. ''​tr -s 123 npn <<<​ 123_132_13n_ppp''​ wypisze ''​npn_np_n_p''​.
  
-Przełącznik ''​-c''​ powoduje zamianę znaków których nie ma w liście. ​+Przełącznik ''​-c''​ powoduje zamianę/​usunięcie ​znaków których nie ma w liście
 +Np. ''​tr -c a-z _''​ zamieni wszystko co nie jest małą literą na podkreślnik.
  
 Listy mogą zawierać zakresy znaków (np. ''​[0-9]'',​ ''​[a-f]''​) i [[https://​pubs.opengroup.org/​onlinepubs/​9799919799/​basedefs/​V1_chap07.html#​tag_07_03_01|klasy znaków]] (np. ''​[:​alnum:​]'',​ ''​[:​space:​]''​). Listy mogą zawierać zakresy znaków (np. ''​[0-9]'',​ ''​[a-f]''​) i [[https://​pubs.opengroup.org/​onlinepubs/​9799919799/​basedefs/​V1_chap07.html#​tag_07_03_01|klasy znaków]] (np. ''​[:​alnum:​]'',​ ''​[:​space:​]''​).
Linia 421: Linia 430:
 i domyślnie wypisuje ją po jego wykonaniu. i domyślnie wypisuje ją po jego wykonaniu.
 Najprostsza komenda wykonująca znajdź/​zastąp to ''​sed '​s/​regexp/​replacement/'<​nowiki></​nowiki>''​. Najprostsza komenda wykonująca znajdź/​zastąp to ''​sed '​s/​regexp/​replacement/'<​nowiki></​nowiki>''​.
-''​sed''​ jest kompletne w sensie Turinga. Jeśli starczy czasu w semestrze, ''​sed''​ będzie omawiany później.+''​sed''​ jest kompletne w sensie Turinga.
  
 ==== awk ==== ==== awk ====
Linia 428: Linia 437:
 tekstu, również przetwarzającym tekst linia po linii na podstawie podanego skryptu. tekstu, również przetwarzającym tekst linia po linii na podstawie podanego skryptu.
 W ''​awk''​ skrypt składa się z reguł – par ''​warunek {instrukcje}'',​ gdzie warunek W ''​awk''​ skrypt składa się z reguł – par ''​warunek {instrukcje}'',​ gdzie warunek
-określa dopasowanie do linii (bądź początku/​końca przetwarzania/​pliku). \\ +określa dopasowanie do linii (bądź początku/​końca przetwarzania/​pliku).
-''​awk''​ nie jest omawiany na zajęciach z SOp; jest omawiany w ramach obieralnego +
-przedmiotu Języki formalne i kompilatory.+
  
 </​small>​ </​small>​
Linia 474: Linia 481:
 Po uruchomieniu ''​less''​ można wyświetlić pomoc naciskając ''​h''​. Wybór przydatnych skrótów: Po uruchomieniu ''​less''​ można wyświetlić pomoc naciskając ''​h''​. Wybór przydatnych skrótów:
   * //spacja// lub //PgDown// / //PgUp// – idź do następnej / poprzedniej strony   * //spacja// lub //PgDown// / //PgUp// – idź do następnej / poprzedniej strony
-  * liczba – skacze do linii tym numerze+  * liczba – przesuwa ​podaną ilość linii
   * liczba zakończona //%// – skacze do tej części dokumentu   * liczba zakończona //%// – skacze do tej części dokumentu
-  * //g// / //G// – skacze na początek / koniec dokumentu+  * //g// / //G// – skacze na początek / koniec dokumentu ​\\ <​small>​liczba zakończona //g// / //G// – skacze do podanej linii dokumentu</​small>​
   * // /wzorzec // / //?​wzorzec// ​ — wyszukuje //wzorca// do przodu / do tyłu \\ //n// / //N// – powtarza wyszukiwane w tym samym / odwrotnym kierunku   * // /wzorzec // / //?​wzorzec// ​ — wyszukuje //wzorca// do przodu / do tyłu \\ //n// / //N// – powtarza wyszukiwane w tym samym / odwrotnym kierunku
   * //s// – zapisuje dane do pliku (przydatne jeśli less czyta z potoku)   * //s// – zapisuje dane do pliku (przydatne jeśli less czyta z potoku)
so/pipes_filters.1744797501.txt.gz · ostatnio zmienione: 2025/04/16 11:58 przez jkonczak