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:
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.
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
- Linux
- Polecenia Linuksa
- Podstawowe informacje o Linuksie
- Powłoka Bash dla Linuksa

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.
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ć