Linux | Terminal - operacje na plikach tekstowych · Technik informatyk egzamin zawodowy

Soisk / Linux

Linux | Terminal - operacje na plikach tekstowych

Podstawowe operacje na plikach tekstowych z poziomu wiersza poleceń / terminala systemu Linux.

Edycja / wyświetlanie zawartości pliku

echo – wyświetlenie tekstu na ekran
echo > nazwa_pliku – wprowadzenie tekstu jako zawartość pliku, w przypadku jeśli nie istnieje – utworzenie pliku
echo >> nazwa_pliku – dopisanie tekstu na koniec pliku tekstowego

cat – wyświetlenie zawartości pliku

cat --help
Składnia: cat [OPCJA]... [PLIK]...
PLIK lub połączenie PLIKÓW wysyłane na standardowe wyjście.
Jeżeli nie został podany PLIK albo podany jest jako -, czytane jest
standardowe wejście.
  -A, --show-all           równoważne -vET
  -b, --number-nonblank    numerowanie niepustych linii na wyjściu,
                             wyłącza -n
  -e                       równoważne -vE
  -E, --show-ends          wypisanie $ na końcu każdej linii
  -n, --number             numerowanie wszystkich linii na wyjściu
  -s, --squeeze-blank      nigdy więcej niż jedna pusta linia
  -t                       równoważne -vT
  -T, --show-tabs          wypisanie znaków TAB jako ^I
  -u                       (ignorowane)
  -v, --show-nonprinting   użycie zapisu ^ i M-, oprócz LFD i TAB
      --help     wyświetlenie tego opisu i zakończenie
      --version  wyświetlenie informacji o wersji i zakończenie

 

nano – edytor tekstu

Skróty klawiszowe w nano widoczne są na dole zrzutu ekranu.
Przykładowe zastosowanie:
Lewy Ctrl+O Zapisz
Lewy Ctrl+X Wyjdź

 

Przykładowo:

student@student:~/Pulpit$ echo "supertajny tekst" > plik1
student@student:~/Pulpit$ cat plik1
supertajny tekst
student@student:~/Pulpit$ touch plik2
student@student:~/Pulpit$ nano plik2
student@student:~/Pulpit$ cat plik2
Litwo! Ojczyzno moja! Ty jesteś jak zdrowie. Ile cię trzeba.
Po wielu kosztach i z nich wzory zmieniano wiarę, mowę, prawa i kiedy do ojca Podkomorzego, Mościwego Pana Mówiąc.
Stojąc i mądrych przedmiotach o nim szedł z wojażu upodobał mury tłumacząc, że przeniosłem stoły z Wysogierdem Radziwiłł z Tadeuszem idą pod Napoleonem, demokrata przyjechał zawczora.
Kusego, albo człowiek uczy ważyć, jak młódź lubi zagadki. Roztargniony, do woli nagadać nie chciał wiedzieć, skąd są, z.
Uciszcie się! woła. Marząc i znowu jak na tem gadać u Woźnego lepiej się na urząd wielkie polowanie.
Praga już zjechał z nich i, czyje były, odgadywał. Przypadkiem oczy swe znajome dawne. też znacznie chartom.
Zwrócona na pamiątkę, że w skroń ucałowawszy, uprzejmie pozdrowił. A choć zawsze i dworskich ciurów. Żaden.
Ojcze Robaku ciszej rzekł do wojska sposobić, Że Bonapart figurka! Bez Suworowa to mówiąc, że po wielu latach pierwszy raz wraz.
Któż by nie był, gdy wyszedł z której ramię z nowych gości. W mym domu ziemię orzę gdy z jej pełnienie!.
Młodzież poszła do Ojczyzn pierwszy raz zawitała moda i nazwisko każdego wodza legijonu i on w tabakierę.

 

more – wyświetlenie zawartości pliku po jednym ekranie terminala naraz

head [-n] plik – wyświetla n pierwszych linii pliku
tail [-n] plik – wyświetla n ostatnich linii pliku
wc plik – statystyki pliku

wc --help
Składnia: wc [OPCJA]... [PLIK]...
    albo: wc [OPCJA]... --files0-from=P
Dla każdego PLIKU wypisywana jest liczba znaków nowej linii, słów i bajtów
oraz podsumowanie jeżeli podany jest więcej niż jeden PLIK. Jeżeli PLIK nie
jest podany albo podany jest jako -, czytane jest standardowe wejście.
Słowem jest niezerowej długości napis ograniczony przez znaki odstępu.
Jeżeli nie został podany PLIK albo podany jest jako -, czytane jest
standardowe wejście.
Poniższe opcje mogą być użyte do wybrania liczników, które zawsze są
podawane w następującym porządku: znak nowej linii, liczba słów, znaków,
bajtów, maksymalna długość linii.
  -c, --bytes            wypisanie liczby bajtów
  -m, --chars            wypisanie liczby znaków
  -l, --lines            wypisanie liczby znaków nowej linii
      --files0-from=PLIK  pliki wejściowe są PLIKU, oddzielone NUL-ami
                           Jeżeli PLIK to -, nazwy czytane są ze
                           standardowego wejścia
  -L, --max-line-length  wypisanie maksymalnej szerokości ekranu
  -w, --words            wypisanie liczby słów
      --help     wyświetlenie tego opisu i zakończenie
      --version  wyświetlenie informacji o wersji i zakończenie

 

Przykładowo:

student@student:~/Pulpit$ head -2 plik2
Litwo! Ojczyzno moja! Ty jesteś jak zdrowie. Ile cię trzeba.
Po wielu kosztach i z nich wzory zmieniano wiarę, mowę, prawa i kiedy do ojca Podkomorzego, Mościwego Pana Mówiąc.
student@student:~/Pulpit$ tail -2 plik2
Któż by nie był, gdy wyszedł z której ramię z nowych gości. W mym domu ziemię orzę gdy z jej pełnienie!.
Młodzież poszła do Ojczyzn pierwszy raz zawitała moda i nazwisko każdego wodza legijonu i on w tabakierę.
student@student:~/Pulpit$ wc plik2
  10  184 1215 plik2

 

diff plik1 plik2 – lista różnic pomiędzy plikami

student@student:~/Pulpit$ cp plik2 plik3
student@student:~/Pulpit$ echo "dopisek" >> plik3
student@student:~/Pulpit$ diff plik2 plik3
10a11
> dopisek

 

Wyszukiwanie tekstu z grep

Polecenie grep umożliwia przeszukiwanie plików tekstowych w poszukiwaniu określonych wzorców. Jest to niezwykle przydatne, gdy chcemy szybko odnaleźć interesujące nas informacje w dużych plikach lub zestawach plików.

Przykład użycia:

grep "szukany_tekst" nazwa_pliku

To polecenie przeszuka plik nazwa_pliku i wypisze wszystkie linie zawierające frazę „szukany_tekst”.

 

Edycja strumieniowa z sed

sed to edytor strumieniowy, który pozwala na modyfikację zawartości plików „w locie”. Dzięki niemu możesz np. zastąpić wszystkie wystąpienia konkretnego tekstu innym ciągiem znaków.

Przykład użycia:

sed 's/stary_tekst/nowy_tekst/g' nazwa_pliku

Powyższe polecenie zastąpi w pliku nazwa_pliku każdy występujący ciąg „stary_tekst” na „nowy_tekst”.

 

Przetwarzanie danych z awk

awk to potężne narzędzie do analizy i przetwarzania danych zapisanych w plikach tekstowych. Umożliwia operacje na poszczególnych kolumnach danych, co jest szczególnie przydatne przy pracy z danymi tabelarycznymi.

Przykład użycia:

awk '{print $1}' nazwa_pliku

To polecenie wyświetli pierwszą kolumnę z każdego wiersza pliku nazwa_pliku.

 

Sortowanie i usuwanie duplikatów

Często przydaje się uporządkowanie zawartości pliku oraz eliminacja powtarzających się linii. Do tego celu używa się poleceń sort i uniq.

Przykłady:

sort nazwa_pliku
uniq nazwa_pliku

 

Możesz również połączyć oba polecenia, aby najpierw posortować dane, a następnie usunąć duplikaty:

sort nazwa_pliku | uniq

 

Translacja znaków z tr

Polecenie tr służy do translacji lub usuwania określonych znaków w strumieniu danych. Jest przydatne np. do zmiany wielkości liter w pliku.

Przykład użycia:

tr 'a-z' 'A-Z' < nazwa_pliku

Polecenie to konwertuje wszystkie małe litery na wielkie w pliku nazwa_pliku.

 

Wygodniejsze przeglądanie z less

Choć Twój artykuł wspomina o more, warto znać również less – polecenie, które umożliwia bardziej zaawansowane przewijanie i wyszukiwanie w plikach. Less pozwala na przewijanie w obu kierunkach oraz dynamiczne wyszukiwanie wewnątrz pliku.

Przykład użycia:

less nazwa_pliku

 

Łączenie poleceń za pomocą potoków

Linux oferuje możliwość łączenia wielu poleceń przy pomocy operatora potoku (|). Dzięki temu wynik jednego polecenia może stać się wejściem dla kolejnego, co umożliwia tworzenie bardzo złożonych operacji.

Przykład:

grep "wzorzec" nazwa_pliku | wc -l

W tym przypadku grep wyszukuje linie zawierające „wzorzec”, a wc -l zlicza ich liczbę.