Kompleksowy przewodnik po korzystaniu z polecenia Cut w systemie Linux

Kompleksowy przewodnik po korzystaniu z polecenia Cut w systemie Linux

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 cutjest 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 -cwykorzystują 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.
  • -Moznaczać 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

Polecenie Echo

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

cat mte.csv

Pokaż dane pliku

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 -copcji z poleceniem cut:

cut -c 1, 8 mte.csv

To polecenie wyodrębnia pierwszy i ósmy znak z każdego wiersza:

Cięcie według znaków

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:

Cięcie według zakresu

Ekstrakcja według bajtu

Aby wyodrębnić konkretne bajty, należy skorzystać -bz opcji polecenia cut:

cut -b 1-3 mte.csv

To polecenie wyodrębnia pierwsze trzy bajty z każdego wiersza w pliku mte.csv:

Cięcie bajtami

Ekstrakcja według pola (kolumny)

Aby wyodrębnić całe pole z pliku, użyj polecenia cut z opcjami -fi -d:

cut -d', ' -f2 mte.csv

W tym poleceniu -d', 'przecinek jest używany jako ogranicznik, podczas gdy -f2wskazuje, że polecenie cut powinno wyodrębnić drugie pole z każdego wiersza:

Cięcie według pola

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, -daby 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

Wytnij za pomocą niestandardowego ogranicznika

Wykluczanie określonych pól podczas ekstrakcji

Możesz pominąć niektóre pola podczas wyodrębniania tekstu z pliku, używając --complementopcji 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:

Cięcie z uzupełnieniem

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-delimiteropcji:

cut -d', ' -f1-3 --output-delimiter='-' mte.csv

To polecenie wykorzystuje myślnik jako separator w wynikach:

Niestandardowy ogranicznik wyjściowy

Łą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

Wytnij z kim

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

Cięcie z głową

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 trlub 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

Pokaż przykładowe dane

Ponieważ funkcja cut wymaga pojedynczego ogranicznika, należy trznormalizować 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:

Cięcie z Tr

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

Pokaż przykładową treść

Użyj sedpolecenia 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

Cięcie z Sed

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, sedi, headaby 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 -dopcji, po której następuje żądany znak ogranicznika. Na przykład, aby użyć przecinka jako ogranicznika, należy użyć -d', '.

Źródło i obrazy

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *