Praca z narzędziami `cat`, `diff`, i `grep` w systemie Linux

Wstęp

W systemie Linux dostępnych jest wiele narzędzi służących do pracy z plikami tekstowymi, przeszukiwania ich zawartości oraz porównywania. Do najczęściej używanych należą polecenia cat, diff i grep. Znajomość tych poleceń pozwala efektywnie zarządzać plikami, wyszukiwać potrzebne informacje oraz analizować różnice pomiędzy różnymi plikami lub katalogami.

  • cat (skrót od "concatenate") pozwala na wyświetlanie zawartości plików tekstowych, łączenie ich oraz tworzenie nowych.
  • diff umożliwia porównywanie zawartości plików lub katalogów, wskazując różnice między nimi.
  • grep to narzędzie do wyszukiwania wzorców w plikach tekstowych, z wykorzystaniem wyrażeń regularnych.

W tej lekcji nauczymy się korzystać z tych poleceń zarówno w prostych, jak i bardziej zaawansowanych scenariuszach.


Cele lekcji

  1. Zrozumienie funkcji polecenia cat:
  • Wyświetlanie zawartości plików.
  • Tworzenie nowych plików tekstowych i dodawanie do nich treści.
  • Łączenie zawartości kilku plików w jeden.
  1. Opanowanie polecenia diff:
  • Porównywanie zawartości plików tekstowych.
  • Analizowanie różnic między katalogami, w tym podkatalogami.
  • Interpretacja wyników w różnych formatach (np. kontekstowym).
  1. Umiejętność korzystania z grep:
  • Wyszukiwanie konkretnych słów, fraz lub wzorców w plikach.
  • Wykorzystanie opcji zaawansowanych, takich jak wyszukiwanie w katalogach czy ignorowanie wielkości liter.
  • Praca z wyrażeniami regularnymi.
  1. Praktyczne zastosowanie nabytej wiedzy:
  • Rozwiązywanie problemów z zarządzaniem i analizą plików w rzeczywistych scenariuszach.
  • Utrwalanie umiejętności pisania własnych skryptów automatyzujących.

1. Polecenie cat

Polecenie cat służy do wyświetlania zawartości plików, łączenia wielu plików w jeden, a także do tworzenia nowych plików. Jest bardzo przydatne przy pracy z plikami tekstowymi.

Najważniejsze opcje:

  • cat [plik] – wyświetla zawartość pliku.
  • cat [plik1] [plik2] > [plik_docelowy] – łączy zawartość plików w jeden nowy plik.
  • cat -n [plik] – wyświetla zawartość pliku z numerami wierszy.
  • cat > [plik] – pozwala na zapis tekstu do pliku (zakończenie przez CTRL+D).

Przykłady:

  1. Wyświetlenie zawartości pliku dokument.txt:
cat dokument.txt
  1. Połączenie plików plik1.txt i plik2.txt w jeden o nazwie wynik.txt:
cat plik1.txt plik2.txt > wynik.txt

2. Polecenie diff

Polecenie diff porównuje zawartość dwóch plików tekstowych, wskazując różnice między nimi.

Najważniejsze opcje:

  • diff plik1 plik2 – porównuje dwa pliki i wyświetla różnice.
  • diff -c plik1 plik2 – wyświetla wynik w formacie kontekstowym.
  • diff -r katalog1 katalog2 – porównuje dwa katalogi (zawartość plików i podkatalogów).

Przykłady:

  1. Porównanie plików plik1.txt i plik2.txt:
diff plik1.txt plik2.txt
  1. Porównanie zawartości katalogów katalog1 i katalog2:
diff -r katalog1 katalog2

3. Polecenie grep

Polecenie grep służy do wyszukiwania wzorców w plikach lub tekstach. Umożliwia korzystanie z wyrażeń regularnych, co czyni je potężnym narzędziem w analizie danych.

Najważniejsze opcje:

  • grep [wzorzec] [plik] – wyszukuje podany wzorzec w pliku.
  • grep -i [wzorzec] [plik] – ignoruje wielkość liter.
  • grep -v [wzorzec] [plik] – wyświetla linie, które nie zawierają wzorca.
  • grep -r [wzorzec] [katalog] – wyszukuje wzorzec w katalogu i jego podkatalogach.

Przykłady:

  1. Wyszukiwanie słowa "Linux" w pliku notatki.txt:
grep Linux notatki.txt
  1. Wyszukiwanie słowa "Linux" bez względu na wielkość liter:
grep -i Linux notatki.txt

Ćwiczenia z dodatkowymi instrukcjami

Ćwiczenia do polecenia cat:

  1. Zadanie 1:
    (a) Utwórz dwa pliki tekstowe o nazwach plik1.txt i plik2.txt za pomocą polecenia cat. Wpisz w nich kilka dowolnych linii tekstu.
    (b) Wyświetl zawartość obu plików, a następnie połącz je w jeden plik o nazwie polaczony.txt.
    (c) Wyświetl zawartość pliku polaczony.txt.

  2. Zadanie 2:
    (a) Utwórz nowy plik o nazwie nowy.txt, wpisując w nim kilka linijek tekstu za pomocą polecenia cat >.
    (b) Dodaj do tego pliku nowe linie za pomocą cat >>.
    (c) Wyświetl ostateczną zawartość pliku nowy.txt.


Ćwiczenia do polecenia diff:

  1. Zadanie 3:
    (a) Utwórz dwa pliki tekstowe o nazwach plik1.txt i plik2.txt. Wprowadź w nich podobną treść, ale różniącą się w kilku miejscach.
    (b) Porównaj oba pliki za pomocą polecenia diff i wyświetl wynik w formacie kontekstowym.

  2. Zadanie 4:
    (a) Utwórz dwa katalogi o nazwach katalog1 i katalog2. W każdym z nich utwórz kilka plików tekstowych o różnych nazwach i zawartości.
    (b) Porównaj zawartość obu katalogów za pomocą polecenia diff -r.


Ćwiczenia do polecenia grep:

  1. Zadanie 5:
    (a) Utwórz plik tekstowy o nazwie dziennik.log zawierający kilka linijek tekstu, z czego niektóre powinny zawierać słowo "błąd".
    (b) Użyj polecenia grep, aby wyszukać wszystkie linie w tym pliku zawierające słowo "błąd". Wyświetl je wraz z numerami wierszy.

  2. Zadanie 6:
    (a) Utwórz katalog dane/ i w nim kilka plików tekstowych o różnych nazwach i zawartości. Niektóre pliki powinny zawierać słowo "Linux".
    (b) Przeszukaj katalog dane/ oraz wszystkie jego podkatalogi w poszukiwaniu słowa "Linux" za pomocą polecenia grep -r.