Polecenie `cut` w systemie Linux jest jednym z użytecznych poleceń do pracy z danymi tekstowymi i zawartością plików. Służy głównie do wycinania treści z danych tabelarycznych lub pliku CSV. Każda linia pliku może zostać podzielona na plasterki, a wymagane dane można łatwo odzyskać za pomocą polecenia „cut”. Może być również używany do wycinania tekstu za pomocą separatora lub pozycji znaku lub bajtu. To polecenie ma wiele opcji wycinania danych z tekstu lub pliku na różne sposoby. Sposób użycia polecenia cut z różnymi opcjami jest pokazany w tym samouczku na różnych przykładach.
Składnia:
Wartość OPCJI jest obowiązkowa dla polecenia `cut`, a nazwa PLIKU jest opcjonalna. Jeśli pominiesz nazwę pliku w poleceniu, pobierze dane ze standardowego wejścia. Ale jeśli pominiesz wartość OPTION w poleceniu cut, wygeneruje błąd.
Opcje:
Znacznik opcji | Opis |
-b lub –byte = LISTA | Wybierz określone bajty. |
-c lub –character = LISTA | Wybierz określone znaki. |
-d lub –delimiter = DELIM | Wybierz wartość DELIM jako separator. Domyślnym separatorem jest TAB. |
-f lub –fields = LISTA | Wybierz określone pola |
–complement | Użyj do uzupełnienia wynik |
-s lub –only-delimited | Pomiń wiersze bez separatora. |
–output-delimiter = STRING | Użyj wartości ŁAŃCUCH jako separatora wyjścia. |
-z lub –zerowy zakończony | Użyj NULL jako separatora linii. |
Przykład-1 : Wytnij by bajty
Następujące polecenie wytnij pokroi standardowe dane wejściowe na podstawie zdefiniowanych bajtów. Tutaj 3, 4, 5 i 6 są zdefiniowane jako bajty. Dane wyjściowe zostaną wygenerowane na podstawie standardowego wejścia. Naciśnij CTRL + D, aby wyjść z polecenia.
Wynik:
Tutaj dane wejściowe to „Lubię programować”, a dane wyjściowe to „lubię” na podstawie wymienionych bajtów.
Utwórz plik tekstowy o nazwie „productlist.txt” z następującą zawartością do zastosowania polecenia „cut”. Użyj klawisza TAB, aby oddzielić pola zawartości pliku.
01 Pióro 2 USD
02 Ołówek 1,5 USD
03 Gumka 1 USD
Uruchom następujące polecenie, aby pobrać tylko identyfikator produktu. Tutaj bajty są podane jako zakres, „1-2”, aby wyciąć dane.
Dane wyjściowe:
Przykład-2: Wytnij według znaków
Możesz wygenerować to samo wyjście używając opcji -c, które są pokazane w poprzednich przykładach. Nie ma więc szczególnej różnicy między wyjściem -b i – c opcje polecenia cut. Uruchom następujące polecenie, aby pokazać użycie opcji -c. Tutaj 4- jest używane jako wartość opcji, która spowoduje odcięcie z pozycji 4 do wszystkich pozostałych znaków w każdym wierszu. Możesz również użyć znaku minus przed wartością, np. -4, a wtedy zostanie ona odcięta od początku do 4 pozycji.
Wyjście:
Pierwsze trzy znaki są pomijane w danych wyjściowych.
Przykład-3: Wytnij według separatora i pól
Utwórz plik CSV o nazwie „Students.csv” z następującą treścią, aby pokazać użycie separatora.
1002, Micheal, EEE, 3,99
1003, Asraful Haque, BBA, 3.85
1004, Momotaj Khan, English, 3.20
Uruchom następującą komendę, aby wydrukować nazwisko ucznia i CGPA z pliku Students.csv. Zgodnie z zawartością pliku, pola 2 i 4 zawierają imię i nazwisko ucznia oraz CGPA. Tak więc w tym poleceniu używane są dwie opcje, aby wyświetlić dane wyjściowe. Jednym z nich jest separator, -d, co oznacza ',' tutaj, a drugim jest opcja pola, -f.
Wynik:
Jeśli chcesz wydrukuj dwie lub więcej kolejnych kolumn dowolnych danych tabelarycznych lub pliku CSV, a następnie możesz zdefiniować pola jako zakres. Zakres wartości pola jest używany w następującym poleceniu. Tutaj wszystkie pola od 2 do 4 zostaną wydrukowane jako dane wyjściowe.
Wynik:
Przykład-4: Wytnij przez dopełnienie
– opcja dopełniająca służy do wygenerowania przeciwnego wyniku polecenia . W poniższym poleceniu używany jest plik productlist.txt utworzony w pierwszym przykładzie. W tym przypadku opcja -f wytnie pierwsze pole, a opcja –-complement wydrukuje pozostałe wszystkie pola pliku, pomijając pierwsze pole.
$ cut –complement -f 1 productlist.txt
Wynik:
Przykład-5: Wytnij przez separator wyjścia
Ta opcja jest używana do generowania wyniku przy użyciu określonego separatora. W następującym poleceniu używany jest wcześniej utworzony plik Students.csv. „,” Jest domyślnym separatorem każdego pliku CSV. Następujące polecenie używa znaku „:” jako wartości separatora wyjścia.
$ cut -d „,” -f 1- 3 Students.csv –output-delimiter = „:”
Wynik:
Po wykonaniu polecenia separator danych wejściowych „,” zostanie zastąpiony przez separator wyjścia „:”, a pierwsze trzy pola zostaną wydrukowane poprzez oddzielenie „:”.
Przykład-6: Używanie wycinania z polecenie pipe
Polecenie Wytnij może pobierać dane wejściowe z dowolnego pliku lub z danych wejściowych użytkownika. Ale tekst wejściowy można wysłać do polecenia cięcia za pomocą potoku. Poniższe polecenie pokazuje użycie polecenia wytnij z rurą. W tym przypadku polecenie echo spowoduje wycięcie tekstu wejściowego do polecenia wycięcia, a polecenie wycięcia wycina pola 2 i 3 na podstawie separatora.
Wynik:
Przykład -7: Zapisz wynik polecenia cut do pliku
Jeśli chcesz, możesz także zapisać wynik polecenia cut w dowolnym pliku tekstowym. Następujące polecenie pobierze zawartość pliku Students.csv jako dane wejściowe, wytnie drugie pole na podstawie separatora i wydrukuje wynik w pliku tekstowym o nazwie „student_names.txt”.
Wynik:
Wniosek:
W tym samouczku próbowano wyjaśnić najczęstsze zastosowania polecenia wytnij za pomocą powyższego przykłady. Mam nadzieję, że użycie polecenia cut zostanie wyczyszczone z czytelników po przećwiczeniu powyższych przykładów.