Systemy operacyjne oparte na systemie Linux oferują wiele narzędzi do przetwarzania tekstu wiersza polecenia, których można używać w codziennej rutynie. Polecenie cut jest jednym z takich narzędzi do manipulacji tekstem, które wykorzystuje ograniczniki, bajty, pola i kolumny do pobrania wymaganego ciągu z bazy danych w postaci pliku płaskiego lub wiersza.

Ponieważ baza danych w postaci pliku płaskiego nie ma związku strukturalnego, a rekordy są oddzielane za pomocą ograniczników, cut jest idealnym narzędziem do wyodrębniania znaków lub bajtów informacji. W tym artykule szczegółowo omówiono polecenie wycinania i przedstawiono kilka praktycznych przykładów z różnymi opcjami filtrowania, które ułatwiają rozpoczęcie pracy z narzędziem.

Przegląd wyciętego polecenia

cut używa następującej podstawowej składni:

skaleczenie 

Możesz go również potokować z innymi poleceniami w następujący sposób:

echo „ciąg_znaków” | skaleczenie 

Należy pamiętać, że brak jakiejkolwiek opcji generuje błąd. Oto kilka flag, których możesz użyć z cut do wywołania różnych funkcji:

instagram viewer
Opcja Opis
-b Cięcia według pozycji bajtu
-C Cięcia według pozycji znaku
-D Wyodrębnia ciąg znaków za pomocą ogranicznika określonego za pomocą opcji pola (-f)
-F Wyciągi według określonego pola
-s Ekstrakty dla samych ograniczników
--komplement Wydrukuj dane wyjściowe z wyjątkiem pola, które określiłeś
--ogranicznik-wyjść Zastąp istniejący ogranicznik tym, który określiłeś

Oto kilka przykładów polecenia wycinania, które pomogą lepiej zrozumieć narzędzie i jego funkcje.

1. Wyodrębnij określone znaki z ciągu

Użyj -b opcja pobierania ciągów znaków według ich liczby bajtów, w następujący sposób:

echo "Witaj świecie" | cięcie -b 1,2,3,5,8,9

Wyjście:

Heloor

Możesz również określić ścieżkę pliku zamiast ciągu:

cut -b 1,2,3,4,5 nazwapliku.txt

Lub możesz wyodrębnić znaki zgodnie z ich pozycją w tekście. Użyj -C opcja, po której następuje sekwencja/kolejność znaków, które należy pobrać w następujący sposób:

echo "Witaj świecie" | cięcie -c 1,2,3,5,6,8,10,11

Wyjście:

cześć stary

Podobnie, aby pobrać pola lub kolumny z bazy danych pliku płaskiego, użyj polecenia wytnij z -F opcja flagi:

cut -f 3 baza danych.txt

2. Wytnij zakres bajtów lub znaków

Możesz także użyć -b flag z poleceniem cut, aby wyodrębnić i wydrukować wiele zakresów bajtów w następujący sposób:

cut -b 1-7,16-23 baza danych.txt

Możesz zdefiniować zakres do pobrania znaków za pomocą -C flaga w następujący sposób:

cut -c 1-7,16-23 baza danych.txt

3. Wyodrębnij tekst z pozycji początkowej lub końcowej

Użyj -cn- opcja wyodrębniania tekstu od n-tego znaku wzwyż do końca linii, gdzie n jest indeksem znaku w ciągu.

Na przykład, aby wyodrębnić ciąg rozpoczynający się od szóstego znaku do końca wiersza:

cut -c6- baza danych.txt

Lub użyj następującego polecenia, aby pobrać od początku do końca m znaki z pliku:

cut -c-8 baza danych.txt

4. Wytnij wiele pól z pliku

Możesz także wydrukować wiele pól z pliku za pomocą -F flaga.

cut -f 1,2 baza danych.txt

Wyjście:

IMIĘ WIEK 
Jhon 20
Lisa 24
Jack 18
Bruce'a 23
Nancy 19

5. Wyodrębnij tekst za pomocą ograniczników

Możesz użyć -D flaga, aby określić ogranicznik za pomocą -F opcja. Ogranicznik określa znak używany do oddzielania pól w pliku tekstowym.

Na przykład, aby wyodrębnić pierwszą kolumnę /etc/passwd pliku, użyj dwukropka (:) jako separatora:

cut -d ‘:’ -f 1 /etc/passwd

Podobnie wartość ogranicznika w danym strumieniu tekstu to pojedyncza spacja:

echo "1% z 1%" | wyciąć -d ' ' -f 2,3

Wyjście:

1% z

6. Zmień ogranicznik wyjścia dla wyświetlacza

ten --ogranicznik-wyjść flaga dodaje elastyczności do wyjścia polecenia cięcia. Na przykład możesz użyć flagi, aby wyświetlić dane wyjściowe w oddzielnym wierszu, używając $’\n’ (nowa linia) wartość w następujący sposób:

grep alice /etc/passwd | cut -d ':' -f 1,5,7 --output-delimiter=$'\⁠n'

Wyjście:

Alicja
Alicja
/bin/sh

Co więcej, możesz również zastąpić ogranicznik pliku wejściowego wybranym przez siebie ogranicznikiem w danych wyjściowych, używając funkcji --ogranicznik-wyjść flaga:

grep root /etc/passwd | cut -d ':' -f 1,6,7 --output-delimiter=@

Wyjście:

root@/root@/bin/bash
nm-openvpn@/var/lib/openvpn/chroot@/usr/sbin/nologin

7. Tnij pola tylko wtedy, gdy linia zawiera ogranicznik

Użyj -s flaga, aby wyodrębnić pola tylko wtedy, gdy wiersze zawierają ogranicznik. Na przykład następujące polecenie nie pobierze pola -f 1 chyba że ma separator spacji:

echo "Witaj Świecie" | cut -d " " -f 1 -s

Wręcz przeciwnie, poniższe polecenie wygeneruje dane wyjściowe, ponieważ ciąg zawiera określony ogranicznik:

echo "Witaj świecie" | cut -d " " -f 1 -s

Wyjście:

Witaj

Podobnie możesz użyć dowolnego innego znaku jako ogranicznika:

echo "Witaj: Świecie" | wyciąć -d ":" -f 2 -s

Wyjście:

Świat

8. Uzupełnij wyjście polecenia

Narzędzie cut umożliwia również wydrukowanie wszystkich pól z wyjątkiem określonego pola. Użyj --komplement opcję w następujący sposób, aby pobrać wszystkie szczegóły konta użytkownika root z wyjątkiem piątej kolumny:

grep "root" /etc/passwd | cut -d ':' --uzupełnij -s -f 5

Wyjście:

root: x: 0:0:/root:/bin/bash

Podobnie w poniższym przykładzie -f 1 parametr musi być wyświetlany Witaj tekst jednak ze względu na --komplement opcja, drukuje tylko resztę.

echo "Witaj całemu światu" | cut -d " " -f 1 --complement

Wyjście:

na cały świat

Najlepsze jest to, że możesz połączyć polecenie cut ze standardowym wyjściem innych poleceń systemu Linux/Unix.

sed jest jednym z takich narzędzi do edycji tekstu, którego można używać do usuwania, wstawiania i zastępowania tekstu. Możesz łatwo przekazać jego dane wyjściowe do polecenia wycinania.

W poniższym przykładzie polecenie grep dane wyjściowe są przesyłane do narzędzia sed, które zastępuje dwukropek (:) myślnikiem (-), a następnie cut wyświetla pola 1, 6 i 7 w następujący sposób:

grep alice /etc/passwd | sed 's/:/-/g' | cięcie -d ' ' -f 1,5,7

Wyjście:

alice-x-1005-1008-Alice-/home/new/alice-/bin/sh

Praca z tekstem w systemie Linux przy użyciu cut

Polecenie cut to elastyczne i wydajne narzędzie wiersza poleceń, którego można używać w różnych przypadkach manipulacji tekstem. Wykorzystuje operacje do odfiltrowania tekstu z plików lub standardowych danych wejściowych. Narzędzie ma również tę zaletę, że użytkownicy mogą ograniczać tekst, który chcą wyświetlić, i dodawać wybrane przez siebie ograniczniki.

Jednak to polecenie ma również pewne ograniczenia. Nie można używać wyrażeń regularnych do określania ograniczników ani używać opcji równoczesnych wielu poleceń wycinania. W tym artykule omówiono podstawowe i zaawansowane praktyczne przykłady tego narzędzia, aby pomóc początkującym w jasnym zrozumieniu poleceń manipulacji tekstem w systemie Linux.

5 najbardziej przydatnych poleceń manipulacji tekstem w systemie Linux

Chcesz poprawić swoją grę na Linuksie i dowiedzieć się więcej o manipulacji tekstem? Oto pięć najlepszych narzędzi wiersza poleceń Linuksa, które pomogą Ci rozpocząć podróż.

Czytaj dalej

UdziałĆwierkaćE-mail
Powiązane tematy
  • Linux
  • Polecenia Linuksa
  • Podstawowe informacje o Linuksie
  • Powłoka Bash dla Linuksa
O autorze
Rumaisa Niazi (10 opublikowanych artykułów)

Rumaisa jest niezależnym pisarzem w MUO. Nosiła wiele kapeluszy, od matematyka po entuzjastę bezpieczeństwa informacji, a teraz pracuje jako analityk SOC. Jej zainteresowania obejmują czytanie i pisanie o nowych technologiach, dystrybucjach Linuksa i wszystkim, co dotyczy bezpieczeństwa informacji.

Więcej od Rumaisy Niazi

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Kliknij tutaj, aby zasubskrybować