background image

Potokowanie strumienia danych 

 
Zastosowanie  znaku  |  pozwala  na  łączenie  wyjścia  jednego  polecenia  z  wejściem  innego. 
Dane  wygenerowane  za  pomocą  pierwszego  polecenia  przekazane  zostaną  na  wejście 
następnego polecenia i po przetworzeniu przekazane na wejście kolejnego lub na ekran. Tego 
typu  przetwarzanie  danych  jest  nazywane  potokiem.  Polecenia  często  wykorzystywane 
 potokach: 

more

  – służy do przeglądania tekstu strona po stronie, jeden ekran na raz, przewijanie stron 

możliwe tylko „do przodu”, np. 

 

ls –la | more

less

  – podobnie jak 

more

, ale przewijanie stron możliwe w obu kierunkach, np. 

 

ls –la | less

cat

  – polecenie wyświetla na ekranie zawartość pliku tekstowego, np. 

 

cat /etc/passwd | less

grep

  –  przeszukuje  wskazany  strumień  danych,  szukając  linii  zawierających  ciąg  znaków 

pasujących do podanego wzorca, 

 

cat /etc/passwd | grep uczen

wc

 

– wypisuje liczbę bajtów, słów lub linii w plikach, np. 

 

ls –la | wc –l 

sort

  – sortuje, zlepia lub porównuje wszystkie linie z podanych plików, np. 

 

cat /etc/passwd | sort 

tee

  –  rozgałęzienie  strumienia.  Pobiera  dane  ze  strumienia  wejściowego  i  tworzy  dwa 

strumienie  wyjściowe  –  jeden  podłączony  do  standardowego  wyjścia,  a  drugi  do 
wskazanego pliku, np. 

 

cat

 

/etc/passwd | sort | tee konta_alfabetycznie

 

 
Przykład: 

ls –la | grep plik | wc –l 

W  tym  przykładzie  polecenie 

ls  –la

  wygeneruje  zestaw  danych,  będący  listą  zbiorów 

w katalogu  bieżącym  (każdy  zbiór  w  nowej  linii).  Dane  te  przekazane  zostaną  na  wejście 

polecenia 

grep

.  Polecenie  to  wyszuka  linie  zawierające  ciąg  znaków  „plik”.  Polecenie 

wc

 

zliczy  linie  w  zbiorze  danych  uzyskanych  na  wyjściu  polecenia 

grep

.  W  wyniku 

przetwarzania  danych  przez  cały  potok  zostanie  uzyskana  liczba  plików  zawierających 
w nazwie ciąg znaków „plik”. 
 
Ćwiczenie 1 – Tworzenie potoków danych 
 

1.

 

Zaloguj się na konto użytkownika root

2.

 

Wpisz w konsoli polecenie: 

ls –la | wc –l > lista.txt 

Polecenie 

ls

  utworzy  listę  zbiorów  w  aktualnym  katalogu  i  przekaże  do 

przetworzenia  przez  polecenie 

wc

.  Polecenie  to  zliczy  liczbę  wierszy  w  liście 

i przekieruje wynik do pliku lista.txt

background image

3.

 

Wpisać w konsoli polecenie: 

ls –la | grep .txt >> lista.txt 

Polecenie 

ls

  utworzy  listę  zbiorów  w  aktualnym  katalogu  i  przekaże  do 

przetworzenia  przez  polecenie 

grep

.  Polecenie  to  odfiltruje  zbiory  posiadające 

w nazwie ciąg znaków 

.txt

 i dopisze ich wykaz do pliku lista.txt

4.

 

Wpisać w konsoli polecenie: 

ls –la | grep .txt | wc –l >> lista.txt 

Polecenie 

ls

  utworzy  listę  zbiorów  w  aktualnym  katalogu  i  przekaże  do 

przetworzenia  przez  polecenie 

grep

.  Polecenie 

grep

  odfiltruje  zbiory  posiadające 

w nazwie  ciąg  znaków 

.txt

  i  przekaże  do  przetworzenia  przez  polecenie 

wc

Polecenie 

wc

 zliczy liczbę wierszy w liście i dopisze wynik do pliku lista.txt