logo

izgriezt komandu Linux ar piemēriem

Izgriezt komanda Linux ir komanda, lai izgrieztu sadaļas no katras failu rindas un ierakstītu rezultātu standarta izvadē. To var izmantot, lai izgrieztu rindas daļas pēc baita pozīcijas, rakstzīmes un lauka. Izgriešanas komanda sagriež rindiņu un izvelk tekstu. Ir jānorāda opcija ar komandu, pretējā gadījumā tiek parādīta kļūda. Ja ir norādīts vairāk nekā viens faila nosaukums, katra faila datu priekšā netiek norādīts faila nosaukums.

Satura rādītājs



Izgrieztas komandas sintakse

Pamata sintaksecut>komanda ir:

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

Kur

`OPTION`> norāda vēlamo uzvedību



` FILE> `>apzīmē ievades failu.

Piezīme : JaFILE>nav norādīts, ` cut`> nolasa no standarta ievades (stdin).

Opcijas, kas pieejamas izgriešanas komandā

Šeit ir saraksts ar visbiežāk izmantotajām opcijām ar ` cut`> komanda:



Opcija

Apraksts

-b, -baiti = SARAKSTS

Atlasa tikai norādītos baitusLIST>(piem.,-b 1-3,7>).

-c, -characters=LIST

Atlasa tikai tās rakstzīmes, kas norādītasLIST>(piem.,-c 1-3,7>).

-d, -delimiter=DIVIDE

LietojumiDELIM>kā lauka norobežotāja rakstzīmi, nevis tabulēšanas rakstzīmi.

-f, -fields=LIS

Atlasa tikai norādītos laukusLIST>, atdalot ar norobežojošo rakstzīmi (noklusējums ir cilne).

-n

Nesadalīt vairāku baitu rakstzīmes (bez efekta, ja vien-b>vai-c>ir norādīts).

– papildināt

Apgrieziet lauku/rakstzīmju atlasi. Drukājiet neatlasītos laukus/rakstzīmes.

Praktiski izgriešanas komandas piemēri

Apskatīsim divus failus ar nosaukumu state.txt un Capital.txt satur attiecīgi 5 Indijas štatu un galvaspilsētu nosaukumus.

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

Ja nav norādīta neviena opcija, tas parāda kļūdu.

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

Izvilkt konkrētus baitus (-b>) Izmantojot cut Command

-b(baits): Lai izvilktu konkrētos baitus, jums jāievēro opcija -b ar baitu numuru sarakstu, kas atdalīts ar komatu. Baitu diapazonu var norādīt arī, izmantojot defisi (-). Ir nepieciešams norādīt baitu numuru sarakstu, pretējā gadījumā tas rada kļūdu.

Tab un backspaces tiek uzskatīti par 1 baita rakstzīmi.

Saraksts bez diapazoniem :

cut -b 1,2,3 state.txt>
saraksts bez diapazona

saraksts bez diapazona

Saraksts ar diapazoniem:

cut -b 1-3,5-7 state.txt>
saraksts ar diapazonu

saraksts ar diapazonu

Tas izmanto īpašu formu, lai atlasītu baitus no rindas sākuma līdz beigām:

Īpaša forma: baitu atlase no rindas sākuma līdz beigām

Šajā gadījumā 1 — norāda no rindas 1. baita līdz beigu baitam

cut -b 1- state.txt>
īpaša forma

īpaša forma ar opciju -b

Šajā gadījumā -3 norāda no rindas 1. līdz 3. baitam

cut -b -3 state.txt>
īpaša forma

īpašas formas -b opcija

Izgriezt pēc rakstzīmes (-c>) Izmantojot cut Command

-c (kolonna): Lai izgrieztu pēc rakstzīmēm, izmantojiet opciju -c. Tas atlasa rakstzīmes, kas piešķirtas opcijai -c. Tas var būt ar komatu atdalītu skaitļu saraksts vai ar defisi (-) atdalītu skaitļu diapazons.

Tabulēšanas un atpakaļatkāpes taustiņi tiek uzskatīti par personāžu. Ir nepieciešams norādīt rakstzīmju numuru sarakstu, pretējā gadījumā šī opcija rada kļūdu.

Sintakse:

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

Šeit, k apzīmē rakstzīmes sākuma pozīciju un n apzīmē rakstzīmes beigu pozīciju katrā rindā, ja k un n ir atdalīti ar — pretējā gadījumā tie ir tikai rakstzīmes pozīcija katrā rindiņā no faila, kas ņemts par ievadi.

Izvilkt noteiktas rakstzīmes:

cut -c 2,5,7 state.txt>
Izvilkt noteiktas rakstzīmes

Izvilkt noteiktas rakstzīmes

Virs izgriešanas komanda izdrukā otro, piekto un septīto rakstzīmi no katras faila rindas.

Izņemiet pirmās septiņas rakstzīmes:

cut -c 1-7 state.txt>
Izņemiet pirmās septiņas rakstzīmes

Izņemiet pirmās septiņas rakstzīmes

Virs izgriešanas komanda izdrukā katras faila rindas pirmās septiņas rakstzīmes. Izgriezt izmanto īpašu formu rakstzīmju atlasei no rindas sākuma līdz beigām:

Īpašā forma: rakstzīmju atlase no rindas sākuma līdz beigām

cut -c 1- state.txt>
rakstzīmju atlase no rindas sākuma līdz beigām

rakstzīmju atlase no rindas sākuma līdz beigām, izmantojot opciju -c

Virs esošā komanda tiek drukāta, sākot no pirmās rakstzīmes līdz beigām. Šeit komandā ir norādīta tikai sākuma pozīcija un beigu pozīcija tiek izlaista.

cut -c -5 state.txt>
rakstzīmju atlase no rindas sākuma līdz beigām, izmantojot opciju -c

rakstzīmju atlase no rindas sākuma līdz beigām, izmantojot opciju -c

Virs komandas drukā sākuma pozīciju līdz piektajai rakstzīmei. Šeit sākuma pozīcija tiek izlaista un ir norādīta beigu pozīcija.

Izgriezt pēc lauka (-f>) Izmantojot cut Command

-f (lauks): -c opcija ir noderīga fiksēta garuma līnijām. Lielākajai daļai unix failu nav fiksēta garuma līniju. Lai iegūtu noderīgu informāciju, jums ir jāizgriež pēc laukiem, nevis kolonnām. Norādīto lauku numuru saraksts ir jāatdala ar komatu. Diapazoni nav aprakstīti ar opciju -f . griezt lietojumiem cilne kā noklusējuma lauka norobežotāju, bet var darboties arī ar citu norobežotāju, izmantojot -d opciju.

Piezīme: Atstarpe netiek uzskatīta par atdalītāju UNIX.

Sintakse:

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

Izvilkt pirmo lauku:

Tāpat kā failā state.txt lauki tiek atdalīti ar atstarpi, ja netiek izmantota opcija -d, tiek drukāta visa rinda:

cut -f 1 state.txt>
Izvelciet pirmo lauku, izmantojot opciju -f

Izvelciet pirmo lauku, izmantojot opciju -f

Ja ` -d` tiek izmantota opcija, tad tā uzskatīja atstarpi kā lauka atdalītāju vai atdalītāju:

cut -d ' ' -f 1 state.txt>
telpa kā lauka atdalītājs vai norobežotājs

telpa kā lauka atdalītājs vai norobežotājs

Izvilkt laukus no 1 līdz 4:

Komanda izdrukā lauku no katras faila rindas pirmās līdz ceturtajai daļai.

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

Komanda izdrukā lauku no pirmā līdz ceturtajam

Komanda izdrukā lauku no pirmā līdz ceturtajam

Papildināt izvadi (--complement>) Izmantojot cut Command

- papildināt: Kā norāda nosaukums, tas papildina produkciju. Šo opciju var izmantot kombinācijā ar citām opcijām vai nu ar -f vai ar -c .

cut --complement -d ' ' -f 1 state.txt>
-- papildināt

– papildināt

cut --complement -c 5 state.txt>

-- papildināt

– papildināt

Izvades norobežotājs (--output-delimiter>) Izmantojot cut Command

-izejas norobežotājs: Pēc noklusējuma izvades atdalītājs ir tāds pats kā ievades atdalītājs, ar kuru mēs norādām izgriezumu -d opciju. Lai mainītu izvades atdalītāju, izmantojiet opciju -output-delimiter = norobežotājs .

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

2024-02-16_13-18

Šeit izgriešanas komanda maina norobežotāju(%) standarta izvadē starp laukiem, kas tiek norādīti, izmantojot opciju -f .

Displeja versija (--version>) Izmantojot cut Command

- versija: Šī opcija tiek izmantota, lai parādītu izgriezuma versiju, kas pašlaik darbojas jūsu sistēmā.

cut --version>

parādīt izgriešanas komandas versiju

parādīt izgriešanas komandas versiju

Kā lietot asti ar caurulēm(|) griezuma komandā

Izgriezt komandu var ievadīt ar daudzām citām unix komandām. Nākamajā piemērā izvade kaķis komanda tiek dota kā ievade griezt komanda ar -f iespēja kārtot štatu nosaukumus no faila state.txt apgrieztā secībā.

cat state.txt | cut -d ' ' -f 1 | sort -r>
izmantojot asti ar cauruli (|) griešanas komandā

izmantojot asti ar cauruli (|) griešanas komandā

To var arī savienot ar vienu vai vairākiem filtriem papildu apstrādei. Tāpat kā nākamajā piemērā, mēs izmantojam komandu cat, head un cut, un kuras izvade tiek saglabāta faila nosaukumā list.txt, izmantojot direktīvu (>).

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

novirzot izvadi citā failā

cipari alfabētā

izvades novirzīšana citā failā

Bieži uzdotie jautājumi par izgriezto komandu operētājsistēmā Linux — FAQ

Kā es varu izmantot cut> komandu, lai no faila izvilktu noteiktas kolonnas?

Piemērs: lai izvilktu pirmo un trešo kolonnu no CSV faila ar nosaukumu ` data.csv`> .

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

Vai es varu izmantot cut> lai no katras rindiņas izvilktu rakstzīmju diapazonu?

Jā tu vari. Lai izvilktu rakstzīmes no 5 līdz 10 no katras nosauktā faila rindastext.txt>.

cut -c5-10 text.txt>

Kā es varu mainīt atdalītāju, ko izmanto cut> komanda?

Izmantojiet ` -d`> opciju, kam seko norobežotāja rakstzīme. Piemēram, lai izmantotu kolu (:>) kā norobežotāju.

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

Vai ir iespējams izmantot cut> izvilkt laukus, pamatojoties uz rakstzīmju pozīciju?

Jā, jūs varat norādīt rakstzīmju pozīcijas ar ` -c`> opciju. Piemēram, lai no katras rindas izvilktu rakstzīmes no 1 līdz 5 un no 10 līdz 15.

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

Kā lietot cut> lai izvilktu laukus, kuru pamatā ir noteikts norobežotājs, un saglabātu tos jaunā failā?

Lai izvilktu ar komatiem atdalītus laukus un saglabātu tos jaunā failā ar nosaukumu ` output.tx> t`>

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

Secinājums

Šajā rakstā mēs apspriedām ` cut`> komanda Linux, kas ir daudzpusīgs rīks konkrētu sadaļu izvilkšanai no failiem, pamatojoties uz baita pozīciju, rakstzīmi vai lauku. Tas sagriež teksta rindiņas un izvada iegūtos datus. Nespēja norādīt opciju arcut>komanda rada kļūdu. Var apstrādāt vairākus failus, taču izvade neietver failu nosaukumus. Opcijas, piemēram, ` -b`> , ` -c`> , un ` -f`> ļauj iegūt attiecīgi pēc baita, rakstzīmes un lauka. The--complement>opcija apgriež atlasi, izdrukājot to, kas nav atlasīts, un--output-delimiter>maina izvades norobežotāju. Komanda ietver arī versijas parādīšanas opcijas, un to var izmantot kopā ar citām komandām, izmantojot caurules papildu apstrādei.

?list=PLqM7alHXFySFc4KtwEZTANgmyJm3NqS_L