
Polecenie cut w systemie Linux jest niezbędnym narzędziem do przetwarzania tekstu, zaprojektowanym w celu wyodrębniania określonych segmentów z każdego wiersza pliku lub z potoku wejściowego. To polecenie nie modyfikuje oryginalnego pliku, ale zamiast tego odczytuje dane i wyświetla pożądane części na standardowym wyjściu. W tym przewodniku zagłębimy się w funkcjonalność polecenia cut w systemie Linux i podamy praktyczne, rzeczywiste przykłady, aby zademonstrować jego użycie.
Eksploracja polecenia Cut
Polecenie cut
jest pomocne dla każdego, kto ma do czynienia ze strukturyzowanym tekstem, ułatwiając skuteczną manipulację danymi i ekstrakcję w środowiskach typu Unix. Poprzez ekstrakcję części wiersza na podstawie pozycji bajtów, pozycji znaków, separatorów lub pól, cut okazuje się nieoceniony do filtrowania i organizowania danych w skryptach powłoki i operacjach wiersza poleceń. Jego zastosowania obejmują od pobierania określonych kolumn z plików CSV po przycinanie niepotrzebnych znaków lub analizowanie dzienników. Chociaż często jest stosowane bezpośrednio z plikami, cut również bezproblemowo współdziała z wynikami innych poleceń, gdy jest wykorzystywane w potoku.
Podstawowa składnia polecenia cut
Polecenie cut jest proste, wykorzystuje opcje, po których następuje nazwa pliku. Składnia jest następująca:
cut [OPTIONS] [FILE]
W tej strukturze OPTIONS dyktują sposób działania polecenia cut, umożliwiając wybór separatora pól (takiego jak przecinek), wybór określonych pól, ustawienie zakresów i wykluczenie wierszy bez separatora, wśród innych funkcjonalności. Jeśli plik nie jest określony, cut odczyta ze standardowego wejścia. Ponadto możesz podać wiele plików, które będą traktowane jako połączona jednostka do przetworzenia.
Opcje powszechnie używane
Polecenie cut oferuje wiele opcji, aby wskazać dokładne segmenty tekstu do wyodrębnienia. Oto niektóre z najczęściej używanych:
- -f lub –fields=LIST : Umożliwia wybór określonych pól na podstawie wyznaczonego ogranicznika.
- -b lub –bytes=LISTA : Wyodrębnia określone bajty z każdego wiersza.
- -c lub –characters=LISTA : Pobiera określone znaki z każdego wiersza.
- -d lub –delimiter : Ustawia niestandardowy ogranicznik zamiast domyślnego tabulatora.
- –complement : Wyświetla wszystko oprócz określonych pól, bajtów lub znaków.
- -s lub –only-delimited : Pomija wiersze pozbawione ogranicznika; takie wiersze są domyślnie uwzględniane.
- –output-delimiter : Umożliwia wybór innego ogranicznika dla wyjścia, w odróżnieniu od ogranicznika wejściowego.
Opcje -f
, -b
, i -c
wykorzystują LISTĘ do zdefiniowania, co wyodrębnić. Możesz określić następujące elementy:
- Pojedyncza liczba, np.2.
- Wiele liczb oddzielonych przecinkami, np.1, 3, 5.
- Zakres taki jak 2-4 (aby wyodrębnić wartości od 2 do 4).
-
N-
oznaczające ekstrakcję od pozycji N do końca. -
-M
oznaczać ekstrakcję od początku do pozycji M.
Wykorzystanie polecenia cut w systemie Linux
Aby zilustrować działanie polecenia cut, wykonajmy kilka praktycznych przykładów. Najpierw utwórzmy przykładowy plik o nazwie „mte.csv” za pomocą polecenia echo:
echo -e "empID, empName, empDesig\n101, Anees, Author\n102, Asghar, Manager\n103, Damian, CEO" > mte.csv

Następnie możemy sprawdzić zawartość pliku korzystając z polecenia cat:
cat mte.csv

Należy wspomnieć, że polecenie cut jedynie wyświetla określony wynik, nie zmieniając samego pliku.
Ekstrakcja danych według znaków
Aby wyodrębnić znaki według pozycji, należy skorzystać z -c
opcji z poleceniem cut:
cut -c 1, 8 mte.csv
To polecenie wyodrębnia pierwszy i ósmy znak z każdego wiersza:

Aby wyodrębnić znaki z określonego zakresu, zastosuj następujące polecenie:
cut -c 1-8 mte.csv
Wyodrębnia znaki z pozycji od 1 do 8 w każdym wierszu:

Ekstrakcja według bajtu
Aby wyodrębnić konkretne bajty, należy skorzystać -b
z opcji polecenia cut:
cut -b 1-3 mte.csv
To polecenie wyodrębnia pierwsze trzy bajty z każdego wiersza w pliku mte.csv
:

Ekstrakcja według pola (kolumny)
Aby wyodrębnić całe pole z pliku, użyj polecenia cut z opcjami -f
i -d
:
cut -d', ' -f2 mte.csv
W tym poleceniu -d', '
przecinek jest używany jako ogranicznik, podczas gdy -f2
wskazuje, że polecenie cut powinno wyodrębnić drugie pole z każdego wiersza:

Implementacja niestandardowych ograniczników w cięciu
Chociaż cut domyślnie używa tabulatora jako ogranicznika, jeśli pola są rozdzielone innym znakiem, użyj, -d
aby określić poprawny. Na przykład, aby wyodrębnić piąte słowo ze zdania rozdzielonego spacją, możesz użyć:
echo "Hey! Geeks Welcome to Maketecheasier.com" | cut -d ' ' -f 5

Wykluczanie określonych pól podczas ekstrakcji
Możesz pominąć niektóre pola podczas wyodrębniania tekstu z pliku, używając --complement
opcji z poleceniem cut. Ta opcja określa, że polecenie cut powinno wyprowadzać wszystkie pola poza wyznaczonymi:
cut -d', ' -f1 mte.csv --complement
To polecenie pomija pierwszą kolumnę i zwraca pozostałą część zawartości:

Modyfikowanie domyślnego ogranicznika wyjściowego
Domyślnie podczas ekstrakcji pól polecenie cut zachowuje ogranicznik wejściowy w wyjściu. Możesz jednak zmienić ogranicznik wyjściowy, używając --output-delimiter
opcji:
cut -d', ' -f1-3 --output-delimiter='-' mte.csv
To polecenie wykorzystuje myślnik jako separator w wynikach:

Łączenie polecenia cut z innymi poleceniami systemu Linux
Polecenie cut można również wykorzystać w połączeniu z innymi poleceniami Linuxa, używając symbolu | pipeline. Na przykład poniższe polecenie wyodrębnia pierwsze pięć znaków z każdego wiersza wyjściowego polecenia who
:
who | cut -c 1-5

W innym przykładzie możesz użyć polecenia cut wraz z poleceniem head, aby wyświetlić pierwsze dwa wiersze pliku „mte.csv”, wyodrębniając tylko pola empName i empDesig:
head -n 2 mte.csv | cut -d ', ' -f2, 3

Nawigacja po nieregularnych formatach danych za pomocą polecenia cut w systemie Linux
Polecenie cut sprawdza się podczas obsługi danych, które są dobrze sformatowane ze spójnymi ogranicznikami (takimi jak przecinki lub tabulatory).Jednak jeśli napotkasz pliki z niespójnymi odstępami lub mieszanymi ogranicznikami, zastosowanie samego polecenia cut może dać niezadowalające rezultaty. Aby rozwiązać te scenariusze, często korzystne jest wcześniejsze wyczyszczenie danych za pomocą poleceń takich jak tr
lub sed
, zapewniając, że polecenie cut może skutecznie wyodrębnić właściwe części.
Zarządzanie nadmiarem przestrzeni
Rozważmy plik o nazwie „mteData.txt”, w którym pola są rozdzielone różnymi spacjami:
cat mteData.txt

Ponieważ funkcja cut wymaga pojedynczego ogranicznika, należy tr
znormalizować odstępy przed zastosowaniem funkcji cut:
cat mteData.txt | tr -s ' ' | cut -d ' ' -f1-2
To polecenie przetwarza plik „mteData.txt”, zastępuje wiele spacji jedną za pomocą tr
, a następnie wyodrębnia pierwsze dwa pola:

Zarządzanie mieszanymi ogranicznikami
W przypadku, gdy plik używa kombinacji spacji i przecinków, znormalizuj format za pomocą sed
. Na przykład plik o nazwie „mteData1.txt” zawiera:
cat mteData1.txt

Użyj sed
polecenia cut, aby zamienić wszystkie spacje na przecinki, a następnie wyodrębnij pierwsze i trzecie pole:
sed 's/ /, /g' mteData1.txt | cut -d ', ' -f1, 3

Wniosek
W tym artykule odkryliśmy funkcjonalności polecenia cut w systemie Linux, kluczowego narzędzia do wyodrębniania danych z plików lub danych wejściowych przesyłanych potokiem. Dzięki prostej składni możesz bez wysiłku uzyskać znaki, bajty lub pola na podstawie określonego ogranicznika. Ponadto pokazaliśmy, jak połączyć polecenie cut z innymi narzędziami, takimi jak tr
, sed
i, head
aby zarządzać nieczystymi danymi i uzyskać bardziej wydajne dane wyjściowe. Niezależnie od tego, czy obsługujesz pliki CSV, analizujesz logi czy oczyszczasz dane, polecenie cut jest niezbędnym atutem do przetwarzania tekstu w środowiskach typu Unix.
Często zadawane pytania
1. Jaki jest główny cel polecenia cut w systemie Linux?
Polecenie cut w systemie Linux jest używane głównie do wyodrębniania określonych sekcji tekstu z plików lub wyników innych poleceń. Umożliwia użytkownikom manipulowanie danymi i formatowanie ich w sposób efektywny na podstawie ograniczników, pozycji bajtów lub pozycji znaków.
2. Czy mogę łączyć polecenie cut z innymi poleceniami systemu Linux?
Tak! Polecenie cut można bezproblemowo zintegrować z innymi poleceniami Linuxa za pomocą symbolu potoku (|).Umożliwia to wydajne przetwarzanie danych, umożliwiając filtrowanie i formatowanie wyników z różnych poleceń.
3. Jak mogę określić niestandardowy ogranicznik podczas korzystania z polecenia cut?
Możesz określić niestandardowy ogranicznik, używając -d
opcji, po której następuje żądany znak ogranicznika. Na przykład, aby użyć przecinka jako ogranicznika, należy użyć -d', '
.
Dodaj komentarz