Android

Linuxin leikkauskomento esimerkein

Cut Command in Linux

Cut Command in Linux

Sisällysluettelo:

Anonim

Linux- ja Unix-järjestelmissä on saatavana monia apuohjelmia, joiden avulla voit käsitellä ja suodattaa tekstitiedostoja. Leikkaa on komentorivi-apuohjelma, jonka avulla voit leikata rivien osia määritellyistä tiedostoista tai pipedistä ja tulostaa tuloksen vakiotulosteeseen. Sitä voidaan käyttää viivan osien leikkaamiseen erottimen, tavun sijainnin ja merkin perusteella.

Tässä opetusohjelmassa näytämme sinulle kuinka käyttää Linuxin leikkauskomentoa käytännön esimerkkien ja yksityiskohtaisten selitysten avulla yleisimmistä leikkausvaihtoehdoista.

Kuinka käyttää leikkauskomentoa

Leikkauskomennon syntaksi on seuraava:

cut OPTION……

Kun käytät leikkauskomentoa, sinun on käytettävä yhtä ja vain yhtä seuraavista vaihtoehdoista:

  • -f ( --fields=LIST ) - Valitse määrittelemällä kenttä, kenttäjoukko tai kenttäalue. Tämä on yleisimmin käytetty vaihtoehto. -b ( --bytes=LIST ) - Valitse määrittelemällä tavu, --bytes=LIST . -c (- --characters=LIST ) - Valitse määrittelemällä merkki, merkistö tai merkistö.

Muut vaihtoehdot ovat:

  • -d ( --delimiter ) - Määritä erotin, jota käytetään oletusarvoisen ”TAB” --delimiter sijaan. - täydennys - täydentää valintaa. Tätä vaihtoehtoa käytettäessä leikkaus näyttää kaikki tavut, merkit tai kentät valittua paitsi. -s ( --only-delimited ) - --only-delimited tulostaa kaikki rivit, joissa ei ole erotinmerkkiä. Tätä vaihtoehtoa käytettäessä leikkaus ei tulosta viivoja, joissa ei ole rajaajia. --output-delimiter - Oletusarvo on käyttää tulon erotinta tulon erottimeksi. Tämän vaihtoehdon avulla voit määrittää eri ulostulon erotinjonon.

Leikkauskomento voi hyväksyä nolla tai enemmän syötettäviä TIEDOSTO-nimiä. Jos TIEDOSTOa ei määritetä tai kun TIEDOSTO on - , leikkaus lukee vakiotulon.

Optioille -f , -b ja -c siirretty LIST-argumentti voi olla kokonaisluku, useita pilkuilla erotettuja kokonaislukuja, kokonaislukualue tai pilkuilla erotettu useita kokonaislukualueita. Jokainen alue voi olla yksi seuraavista:

  • N nnennen kenttä, tavu tai merkki, alkaen 1. N- N: nnessä kentästä, tavu tai merkki, rivin loppuun. NM n: nnestä M: hen kenttään, tavuun tai merkkiin. -M ensimmäisestä M-kenttään, tavu tai merkki.

Kuinka leikata kentällä

Leikkaa-komentoa käytetään useimmiten valittujen kenttien näyttämiseen jokaiselta tiedostoriviltä tai vakiotulolta. Kun määrittelemätöntä oletuserotin on “TAB”.

Alla olevissa esimerkeissä käytämme seuraavaa tiedostoa. Kaikki kentät on erotettu välilehdillä.

test.txt

245:789 4567 M:4540 Admin 01:10:1980 535:763 4987 M:3476 Sales 11:04:1978

Käytettävän 1. ja 3. kentän näyttämiseksi:

cut test.txt -f 1, 3

245:789 M:4540 535:763 M:3476

Tai jos haluat näyttää 1.-4. Kentän:

cut test.txt -f -4

245:789 4567 M:4540 Admin 535:763 4987 M:3476 Sales

Kuinka leikata erottimen perusteella

Kun haluat leikata erottimen perusteella, käytä -d vaihtoehtoa, jota seuraa haluamasi erotin.

Esimerkiksi, kun haluat näyttää 1. ja 3. kentän käyttämällä erottimena ”:”, kirjoita:

cut test.txt -d ':' -f 1, 3

245:4540 Admin 01 535:3476 Sales 11

Voit käyttää mitä tahansa yksittäistä merkkiä erottimena. Seuraavassa esimerkissä käytämme välilyöntiä erottimena ja tulostamme toisen kentän:

echo "Lorem ipsum dolor sit amet" | cut -d ' ' -f 2

ipsum

Kuinka täydentää valintaa

Voit täydentää valintakenttäluetteloa - täydentämällä -vaihtoehtoa. Tämä tulostaa vain ne kentät, joita ei ole valittu -f vaihtoehdolla.

Seuraava komento tulostaa kaikki kentät paitsi 1. ja 3. kenttä:

cut test.txt -f 1, 3 --complement

4567 Admin 01:10:1980 4987 Sales 11:04:1978

Kuinka määrittää tulosteen erotin

Määritä ulostulon erotin käyttämällä - --output-delimiter -vaihtoehtoa. Esimerkiksi, jos haluat asettaa ulostulon rajoittimen arvoon _ käytä:

cut test.txt -f 1, 3 --output-delimiter='_'

245:789_M:4540 535:763_M:3476

Kuinka leikata bytes ja merkit

Ennen kuin jatkat, teemme eron tavujen ja merkkien välillä.

Yksi tavu on 8 bittiä ja voi edustaa 256 eri arvoa. Kun ASCII-standardi perustettiin, se otti huomioon kaikki kirjaimet, numerot ja symbolit, joita tarvitaan englannin kanssa työskentelemiseen. ASCII-merkistötaulukossa on 128 merkkiä ja kutakin merkkiä edustaa yksi tavu. Kun tietokoneista tuli maailmanlaajuisesti suosittuja, teknologiayritykset alkoivat ottaa käyttöön uusia merkistökoodauksia eri kielille ja yli 256 merkkiä kestäville kielille, yksinkertainen 1: 1-kartoitus ei ollut mahdollinen. Tämä johtaa erilaisiin ongelmiin, kuten asiakirjojen jakamiseen tai verkkosivustojen selaamiseen, ja tarvittiin uusi Unicode-standardi, joka pystyy käsittelemään suurimman osan maailman kirjoitusjärjestelmistä. UTF-8 luotiin ratkaisemaan nämä ongelmat. UTF-8: ssa kaikkia merkkejä ei ole esitetty yhdellä tavulla. Merkit voidaan esittää yhdellä tavulla 4 tavulla.

Seuraavissa esimerkeissä käytämme ü merkkiä, joka vie 2 tavua.

Käytä -b (- --bytes ) -vaihtoehtoa leikata osa rivistä määrittämällä tavun sijainti.

Valitse viides tavu:

echo 'drüberspringen' | cut -b 5

b

Valitse 5., 9. ja 13. tavu:

echo 'drüberspringen' | cut -b 5, 9, 13

bpg

Valitse alue 1. - 5. tavuun:

echo 'drüberspringen' | cut -b 1-5

drüb

Tämän artikkelin kirjoittamishetkellä GNU: n ydinversioissa niputettua leikattua versiota ei ole mahdollista leikata merkkien mukaan. Kun käytetään -c vaihtoehtoa, leikkaus toimii samalla tavalla kuin käytettäessä -b vaihtoehtoa.

Leikatut esimerkit

Leikkauskomentoa käytetään yleensä yhdessä muiden komentojen kanssa putkiston kautta. Tässä on muutama esimerkki.

Hanki luettelo kaikista käyttäjistä

getent passwd -komennon tulos välitetään cut joka tulostaa ensimmäisen arkistoidun, käyttämällä : erottimena.

getent passwd | cut -d ':' -f1

Tarkastele 10 yleisimmin käytettyä komentoa

Seuraavassa esimerkissä leikkausta käytetään poistamaan 8 ensimmäistä tavua history ulostulon jokaiselta riviltä.

history | cut -c8- | sort | uniq -c | sort -rn | head

johtopäätös

Tähän mennessä sinulla pitäisi olla hyvä käsitys siitä, kuinka käyttää Linuxin leikkauskomentoa. Vaikka cut-komennolla on erittäin hyödyllistä, sillä on joitain rajoituksia. Se ei tue useamman kuin yhden merkin määrittämistä erottimeksi, eikä se tue useita desimetriä.

leikattu terminaali