logo

polecenie cięcia w systemie Linux z przykładami

Polecenie wycinania w systemie Linux to polecenie służące do wycinania sekcji z każdej linii plików i zapisywania wyniku na standardowym wyjściu. Można go używać do wycinania części linii według pozycji bajtu, znaku i pola. Polecenie wycinania przecina linię i wyodrębnia tekst. Konieczne jest określenie opcji za pomocą polecenia, w przeciwnym razie wyświetli się błąd. W przypadku podania więcej niż jednej nazwy pliku, dane z każdego pliku nie są poprzedzane jego nazwą.

Spis treści



Składnia polecenia cięcia

Podstawowa składniacut>polecenie to:

cut OPTION... [FILE]...>

Gdzie

`OPTION`> określa pożądane zachowanie



` FILE> `>reprezentuje plik wejściowy.

Notatka : JeśliFILE>nie jest określony, ` cut`> czyta ze standardowego wejścia (stdin).

Opcje Dostępne w poleceniu cięcia

Oto lista najczęściej używanych opcji z rozszerzeniem ` cut`> Komenda:



Opcja

Opis

-b, –bajty=LISTA

Wybiera tylko bajty określone wLIST>(np.,-b 1-3,7>).

-c, –znaki=LISTA

Wybiera tylko znaki określone wLIST>(np.,-c 1-3,7>).

-d, –delimiter=PODZIEL

UżywaDELIM>jako znak ogranicznika pola zamiast znaku tabulacji.

-f, –pola=LIS

Wybiera tylko pola określone wLIST>, oddzielone znakiem ogranicznika (domyślnie jest to tabulator).

-N

Nie dziel znaków wielobajtowych (bez efektu, chyba że-b>Lub-c>jest specyficzne).

-komplement

Odwróć wybór pól/znaków. Wydrukuj niewybrane pola/znaki.

Praktyczne przykłady polecenia cięcia

Rozważmy dwa pliki posiadające nazwę stan.txt I kapitał.txt zawiera odpowiednio 5 nazw stanów i stolic Indii.

$ cat state.txt Andhra Pradesh Arunachal Pradesh Assam Bihar Chhattisgarh>

Bez określonej opcji wyświetla błąd.

  $ cut state.txt   cut: you must specify a list of bytes, characters, or fields Try 'cut --help' for more information.>

Wyodrębnij określone bajty (-b>) Używając polecenia wycinania

-b(bajt): Aby wyodrębnić określone bajty, należy zastosować opcję -b z listą numerów bajtów oddzielonych przecinkami. Zakres bajtów można również określić za pomocą łącznika (-). Konieczne jest określenie listy numerów bajtów, w przeciwnym razie wystąpi błąd.

Tabulatory i backspace są traktowane jak znak 1-bajtowy.

Lista bez zakresów :

cut -b 1,2,3 state.txt>
lista bez zakresu

lista bez zakresu

Lista z zakresami:

cut -b 1-3,5-7 state.txt>
lista z zakresem

lista z zakresem

Używa specjalnego formularza do wybierania bajtów od początku do końca linii:

Formularz specjalny: Wybieranie bajtów od początku do końca linii

W tym przypadku 1- wskazuje od pierwszego bajtu do bajtu końcowego linii

cut -b 1- state.txt>
specjalna forma

specjalny formularz z opcją -b

W tym przypadku -3 wskazuje od 1. do 3. bajtu linii

cut -b -3 state.txt>
specjalna forma

formularz specjalny -b opcja

Wytnij według znaku (-c>) Używając polecenia wycinania

-c (kolumna): Aby wyciąć według znaku, użyj opcji -c. Spowoduje to wybranie znaków podanych w opcji -c. Może to być lista liczb oddzielonych przecinkami lub zakres liczb oddzielonych łącznikiem (-).

Tabulatory i backspace są traktowani jak postać. Konieczne jest określenie listy numerów znaków, w przeciwnym razie przy tej opcji wystąpi błąd.

Składnia:

cut -c [(k)-(n)/(k),(n)/(n)] filename>

Tutaj, k oznacza pozycję początkową znaku i N oznacza końcową pozycję znaku w każdym wierszu, jeśli k I N są oddzielone przez - w przeciwnym razie są to tylko pozycje znaku w każdej linii pliku wziętego jako dane wejściowe.

Wyodrębnij określone znaki:

cut -c 2,5,7 state.txt>
Wyodrębnij określone znaki

Wyodrębnij określone znaki

Powyższe polecenie wycinania wypisuje drugi, piąty i siódmy znak z każdej linii pliku.

Wyodrębnij pierwsze siedem znaków:

cut -c 1-7 state.txt>
Wyodrębnij pierwsze siedem znaków

Wyodrębnij pierwsze siedem znaków

Powyższe polecenie wycinania wypisuje pierwsze siedem znaków każdej linii z pliku. Cut używa specjalnego formularza do wybierania znaków od początku do końca linii:

Formularz specjalny: Wybieranie znaków od początku do końca linii

cut -c 1- state.txt>
wybieranie znaków od początku do końca linii

wybieranie znaków od początku do końca linii za pomocą opcji -c

Powyższe polecenie wypisuje zaczynając od pierwszego znaku do końca. Tutaj w poleceniu podana jest tylko pozycja początkowa, a pozycja końcowa jest pomijana.

cut -c -5 state.txt>
wybieranie znaków od początku do końca linii za pomocą opcji -c

wybieranie znaków od początku do końca linii za pomocą opcji -c

Powyższe polecenie wypisuje pozycję początkową do piątego znaku. Tutaj pozycja początkowa jest pomijana i określana jest pozycja końcowa.

Cięcie według pola (-f>) Używając polecenia wycinania

-f (pole): -c opcja jest przydatna w przypadku linii o stałej długości. Większość plików uniksowych nie ma linii o stałej długości. Aby wyodrębnić przydatne informacje, należy podzielić je na pola, a nie kolumny. Lista podanych numerów pól musi być oddzielona przecinkiem. Zakresy nie są opisywane opcją -f . cięcie wykorzystuje patka jako domyślny ogranicznik pola, ale może również współpracować z innym ogranicznikiem za pomocą -D opcja.

Notatka: Spacja nie jest uważana za ogranicznik w systemie UNIX.

Składnia:

cut -d 'delimiter' -f (field number) file.txt>

Wyodrębnij pierwsze pole:

Jak w pliku stan.txt pola oddzielane są spacją, jeśli nie zostanie użyta opcja -d, wówczas wypisuje całą linię:

cut -f 1 state.txt>
Wyodrębnij pierwsze pole za pomocą opcji -f

Wyodrębnij pierwsze pole za pomocą opcji -f

Jeśli ` -d` używana jest opcja, wówczas uważa się spację za separator lub ogranicznik pól:

cut -d ' ' -f 1 state.txt>
spacja jako separator lub ogranicznik pola

spacja jako separator lub ogranicznik pola

Wyodrębnij pola od 1 do 4:

Polecenie wypisuje pole od pierwszej do czwartej każdej linii z pliku.

cut -d ' ' -f 1-4 state.txt>

Polecenie wypisuje pole od pierwszego do czwartego

Polecenie wypisuje pole od pierwszego do czwartego

Uzupełnij wynik (--complement>) Używając polecenia wycinania

-komplement: Jak sama nazwa wskazuje uzupełnia on wyjście. Opcji tej można używać w połączeniu z innymi opcjami z -F lub z -C .

cut --complement -d ' ' -f 1 state.txt>
--komplement

-komplement

cut --complement -c 5 state.txt>

--komplement

-komplement

Ogranicznik wyjściowy (--output-delimiter>) Używając polecenia wycinania

–ogranicznik wyjścia: Domyślnie ogranicznik wyjściowy jest taki sam, jak ogranicznik wejściowy, który określamy w cięciu -D opcja. Aby zmienić ogranicznik wyjściowy, użyj opcji –output-delimiter=separator .

cut -d ' ' -f 1,2 state.txt --output-delimiter='%'>

2024-02-16_13-18

Tutaj polecenie wycinania zmienia ogranicznik (%) na standardowym wyjściu pomiędzy polami określonymi za pomocą opcji -f.

Wersja wyświetlacza (--version>) Używając polecenia wycinania

-wersja: Ta opcja służy do wyświetlenia wersji programu Cut, która jest aktualnie uruchomiona w Twoim systemie.

cut --version>

wyświetl wersję polecenia wycinania

wyświetl wersję polecenia wycinania

Jak używać ogona z rurami (|) w poleceniu cięcia

Polecenie wycinania można połączyć z wieloma innymi poleceniami systemu UNIX. W poniższym przykładzie wyjście kot polecenie jest podawane jako dane wejściowe do cięcie polecenie z -F możliwość sortowania nazw stanów pochodzących z pliku state.txt w odwrotnej kolejności.

cat state.txt | cut -d ' ' -f 1 | sort -r>
użycie ogona z rurą (|) w poleceniu cięcia

użycie ogona z rurą (|) w poleceniu cięcia

Można go również połączyć z jednym lub większą liczbą filtrów w celu dodatkowego przetwarzania. Podobnie jak w poniższym przykładzie używamy poleceń cat, head i cut, których dane wyjściowe są przechowywane w nazwie pliku list.txt za pomocą dyrektywy (>).

cat state.txt | head -n 3 | cut -d ' ' -f 1>lista.txt>
cat list.txt>

przekierowywanie danych wyjściowych do innego pliku

wyszukiwanie liniowe w Javie

przekierowywanie danych wyjściowych do innego pliku

Często zadawane pytania dotyczące polecenia cięcia w systemie Linux – często zadawane pytania

Jak korzystać z cut> polecenie wyodrębnienia określonych kolumn z pliku?

Przykład: Aby wyodrębnić pierwszą i trzecią kolumnę z pliku CSV o nazwie ` data.csv`> .

cut -d',' -f1,3 data.csv>

Mogę uzyć cut> wyodrębnić zakres znaków z każdej linii?

Tak, możesz. Aby wyodrębnić znaki od 5 do 10 z każdej linii pliku o nazwietext.txt>.

cut -c5-10 text.txt>

Jak mogę zmienić ogranicznik używany przez cut> Komenda?

Użyj ` -d`> opcja, po której następuje znak ogranicznika. Na przykład, aby użyć dwukropka (:>) jako ogranicznik.

cut -d':' -f1,3 data.txt>

Czy można skorzystać cut> wyodrębnić pola na podstawie pozycji znaku?

Tak, możesz określić pozycje znaków za pomocą ` -c`> opcja. Na przykład, aby wyodrębnić znaki od 1 do 5 i od 10 do 15 z każdej linii.

cut -c1-5,10-15 data.txt>

Jak używać cut> wyodrębnić pola na podstawie określonego ogranicznika i zapisać je w nowym pliku?

Aby wyodrębnić pola oddzielone przecinkami i zapisać je w nowym pliku o nazwie ` output.tx> t`>

cut -d',' -f1,3 data.csv>wynik.txt>

Wniosek

W tym artykule omówiliśmy ` cut`> polecenie w systemie Linux, które jest wszechstronnym narzędziem do wyodrębniania określonych sekcji z plików na podstawie pozycji bajtu, znaku lub pola. Kroi wiersze tekstu i wyświetla wyodrębnione dane. Brak określenia opcji zcut>polecenie powoduje błąd. Można przetwarzać wiele plików, ale dane wyjściowe nie zawierają nazw plików. Opcje takie jak ` -b`> , ` -c`> i ` -f`> pozwalają na ekstrakcję odpowiednio według bajtu, znaku i pola. The--complement>opcja odwraca zaznaczenie i drukuje to, co nie zostało wybrane, oraz--output-delimiter>zmienia ogranicznik wyjściowy. Polecenie zawiera również opcje wyświetlania wersji i może być używane w połączeniu z innymi poleceniami za pośrednictwem potoków w celu dodatkowego przetwarzania.

?list=PLqM7alHXFySFc4KtwEZTANGmyJm3NqS_L