cut

Z Linux Wiki
Skocz do: nawigacja, szukaj

cut – polecenie występujące w systemach uniksowych, w tym w GNU/Linuksie. Umożliwia wybranie („wycięcie”) z podanych plików linii z danymi wskazanymi przez parametry. Jeśli nie zostały podane żadne pliki, zostanie użyte standardowe wejście.

Użycie[edytuj]

$ cut [przełączniki] <plik> ...

Najczęściej używane przełączniki[edytuj]

Określające cel wyboru[edytuj]

  • -b X lub --bytes=X - wybiera określoną przez X liczbę bajtów;
  • -c X lub --characters=X - wybiera określoną przez X liczbę znaków;
  • -f X lub --fields=X - wybiera określoną przez X liczbę "pól", tj. sekwencji znaków oddzielonymi odpowiednim znakiem (domyślnie jest nim Tab, można to zmienić opcją -d, patrz niżej).

We wszystkich przypadkach X może mieć 4 postacie:

  • X - wybiera bajt/znak/pole o numerze X z każdej linii;
  • X- - wybiera w każdej linii wszystkie bajty/znaki/pola począwszy od tego X-nastego;
  • X-Y - wybiera wszystko od znaku o numerze X do znaku o numerze Y;
  • -X - wybiera wszystko od początku do bajtu/znaku/pola o numerze X.

Pozostałe[edytuj]

  • -d X lub --delimiter=X - ustawia X jako separator pól;
  • -s lub --only-delimited - wyświetla jedynie linie zawierające separatory, wymaga -f;
  • --version - wyświetla wersję narzędzia.

Przykłady[edytuj]

Przyjmijmy, że plik plik.txt zawiera następującą treść:

To jest pierwsza linia.
Ta druga.
A ta trzecia i zawiera taba,	tutaj.
A ta	aż	dwa!
To ostatnia linia.

Pokazanie pierwszej litery w każdej linii:

$ cut -c 1 plik.txt
T
T
A
A
T

Pokazanie wszystkich znaków od czwartego do szóstego w każdej linii

$ cut -c 4-6 plik.txt
jes
dru
a t
a	a
ost

Pokazanie drugiego "pola" w każdej linii:

$ cut -f 2 plik.txt:
To jest pierwsza linia.
Ta druga.
tutaj.
aż
To ostatnia linia.

To, co wyżej, jednak linie składające się z jednego pola są ukrywane:

cut -f 2 -s plik.txt
tutaj.
aż

Wyświetlenie dwóch pierwszych pól w każdej linii, przy założeniu, że pola są oddzielane spacjami:

cut -f -2 -d " " plik.txt
To jest
Ta druga.
A ta
A ta	aż	dwa!
To ostatnia