powrót

Ćwiczenia 3

tee

$ tee <plik1>

Przełączniki:

-a

tac

$ tac <plik>

Przetwarzanie potokowe

|

Przykład:

$ ls -l /home/students/ | less

Filtry

head

tail

Przełączniki:

-c <n>
-n <n>

Przykład:

$ head p1
$ head -c 2 p1
$ head -n 4 p1

sort

$ sort <plik>

Przełączniki:

-r

Przykład:

$ sort p1
$ sort -r p1

uniq

$ uniq <plik1>

Przełączniki:

-d
-u
-c

Przykład:

Ściągamy pliki: p3 poleceniem:
$ wget "http://zurowski.faculty.wmi.amu.edu.pl/dydaktyka/zima-2014/SOP/p3"
$ uniq p3
$ uniq -d p3
$ uniq -u p3
$ uniq -c p3

wc

[Word Counter]
$ wc <plik>

Przełączniki:

-l
-w
-c

Przykład:

$ wc p3
$ wc -l p3
$ wc -w p3
$ wc -c p3

tr

$ tr <łańcuch1> <łańcuch2>

Przełączniki:

-d
-c

Przykład:

$ tr abc xyz
$ tr -d 0123456789
$ tr -cd 0123456789

cut

$ cut <plik>

Przełączniki:

-c <n>-<n>
-f <n>[,<n>]
-d <c>

Przykład:

$ ls -l | cut -d ' ' -f 1,3
$ ls -l | cut -c 2-4

grep

$ grep <wyrażenie regularne> <lista plików>

Przełączniki:

-i	# ignoruje wielkość liter
-c	# zlicza wystąpienia
-w	# dopasowuje wzorzec do całych słów
-l	# dopasowuje wzorzec do całych linii
-v	# wypisuje linie nie pasujące do wzorca
-q	# nic nie wypisuje i zwraca 0 przy pierwszym napotkanym wystąpieniu

Wyrażenia regularne

Przykłady:

Ściągamy plik p4 poleceniem:
$ wget "http://zurowski.faculty.wmi.amu.edu.pl/dydaktyka/zima-2014/SOP/p4"
  1. $ grep est p4
  2. $ grep \. p4
  3. $ grep ps[auy] <<KONIEC
    > psami
    > psom
    > psu
    > ps
    > KONIEC
  4. $ grep []^-] p4
  5. $ grep [a-zA-Z][a-zA-Z0-9_]* <<KONIEC
    > a
    > 1B2
    > cab24
    > KONIEC
  6. -?[0-9]+
  7. ^[^.]*\.[^.]*$.
  8. jeden|dwa
  9. ([a-z][a-z])*

Ćwiczenia:

  1. Wyświetl po 5 pierwszych linii wszystkich plików w swoim katalogu domowym w taki sposób, aby nie były wyświetlane ich nazwy.
  2. Wyświetl linie o numerach 3, 4 i 5 z pliku /etc/passwd
  3. Wyświetl linie o numerach 7, 6 i 5 od końca pliku /etc/passwd
  4. Wyświetl zawartość /etc/passwd w jednej linii
  5. Za pomocą filtru tr wykonaj modyfikację pliku, polegającą na umieszczeniu każdego słowa w osobnej linii.
  6. Napisać polecenie zliczające sumę znaków z pierwszych trzech linii pliku /etc/passwd
  7. Wyświetl listę plików z aktualnego katalogu, zamieniając wszystkie małe litery na duże.
  8. Wyświetl listę praw dostępu do plików w aktualnym katalogu, ich rozmiar i nazwę
  9. Wyświetl listę plików w aktualnym katalogu, posortowaną według rozmiaru pliku
  10. Sporządź statystykę praw dostępu (dla każdego z praw dostępu podaj ile razy zostało ono przydzielone)
  11. Podaj nazwy trzech najmniejszych plików w katalogu posortowane wg nazwy
  12. Sprawdź czy któryś z użytkowników jest zalogowany w systemie więcej niż jeden raz. Dla każdego takiego użytkownika należy wyświetlić jego identyfikator i listę terminali na których pracuje.
  13. Pobierz plik korpus.txt poleceniem
    wget zurowski.faculty.wmi.amu.edu.pl/dydaktyka/zima-2014/SOP/korpus.txt
    dokonaj analizy częstości występowania liter (przykład:)
    12	e
    5	g
    ...
    (UWAGA: należy użyć polecenia sed -r 's/<wyrażenie regularne>/<napis>/g' komenda sed zamienia każde wystąpienie wzorca <wyrażenie regularne> na napis <napis> gdzie wzorzec dopasowany do wyrażenia <wyrażenie regularne> można zapamiętać biorąc go w nawias okrągły (<wyrażenie regularne>) i cytując w części <napis> za pomocą wyrażenia \1)

Inne polecenia

bc

$ bc <plik>

Przełączniki:

-q
-l

Przykład:

Plik wyr
2 + 2 * 2
6 ^ 3
sqrt(4)
$ bc < wyr 

cal

[CALendar]
$ cal [<miesiąc> [<rok>]]

Przełączniki:

-j
-y

Przykład:

$ cal
$ cal -j
cal -y
cal 1939
cal september 1939

clear

Przykład:

$ clear