„Linux“ operacinės sistemos siūlo daugybę komandų eilutės teksto apdorojimo paslaugų, kurias galite naudoti kasdienėje veikloje. Iškirpimo komanda yra viena iš tokių manipuliavimo tekstu įrankių, kurie naudoja skyriklius, baitus, laukus ir stulpelius, kad gautų reikiamą eilutę iš vienodo failo duomenų bazės arba eilutės.

Kadangi vienodo failo duomenų bazė neturi struktūrinio ryšio, o įrašai yra atskiriami skyrikliu, iškirpimas yra ideali priemonė informacijos simboliams ar baitams išgauti. Šiame straipsnyje išsamiai aptariama iškirpimo komanda ir pateikiami keli praktiniai pavyzdžiai su skirtingomis filtro parinktimis, kad galėtumėte pradėti naudoti įrankį.

Iškirptos komandos apžvalga

cut naudoja šią pagrindinę sintaksę:

supjaustyti 

Taip pat galite jį suvesti su kitomis komandomis taip:

echo "simbolių_eilutė" | supjaustyti 

Atminkite, kad pasirinkimo nebuvimas sukelia klaidą. Štai keletas vėliavėlių, kurias galite naudoti su cut, kad iškviestumėte įvairias jo funkcijas:

instagram viewer
Parinktis apibūdinimas
-b Iškirpti pagal baitų padėtį
-c Iškirpti pagal simbolio padėtį
-d Ištraukia eilutę naudojant skirtuką, nurodytą (-f) lauko parinktimi
-f Ištraukos pagal nurodytą lauką
-s Ištraukos tik skirtukams
--papildyti Išspausdinkite išvestį, išskyrus jūsų nurodytą lauką
--išvesties skyriklis Pakeiskite esamą skirtuką tuo, kurį nurodėte

Štai keletas iškirpimo komandos pavyzdžių, kurie padės geriau suprasti įrankį ir jo funkcijas.

1. Ištraukite konkrečius simbolius iš eilutės

Naudoti -b parinktis gauti simbolių eilutes pagal jų baitų skaičių, kaip nurodyta toliau:

aidas "Sveikas pasaulis" | supjaustyti -b 1,2,3,5,8,9

Išvestis:

Heloor

Taip pat vietoj eilutės galite nurodyti failo kelią:

cut -b 1,2,3,4,5 failo pavadinimas.txt

Arba galite išskirti simbolius pagal jų vietą tekste. Naudoti -c parinktis, po kurios nurodoma simbolių seka / tvarka, kurią turite gauti taip:

aidas "Sveikas pasaulis" | supjaustyti -c 1,2,3,5,6,8,10,11

Išvestis:

Sveiki seni

Panašiai, norėdami gauti laukus ar stulpelius iš vienodo failo duomenų bazės, naudokite komandą cut su -f vėliavėlės variantas:

cut -f 3 duomenų bazė.txt

2. Iškirpti baitų arba simbolių diapazoną

Taip pat galite naudoti -b pažymėkite su cut komanda, kad ištrauktumėte ir išspausdintumėte kelis baitų diapazonus, kaip nurodyta toliau:

cut -b 1-7,16-23 duomenų bazė.txt

Galite nustatyti simbolių gavimo diapazoną naudodami -c vėliavėle taip:

cut -c 1-7,16-23 duomenų bazė.txt

3. Ištraukite tekstą iš pradžios arba pabaigos pozicijų

Naudoti -cn- galimybė ištraukti tekstą nuo n-ojo simbolio iki eilutės pabaigos, kur n yra eilutės simbolio indeksas.

Pavyzdžiui, norėdami išgauti eilutę nuo šeštojo simbolio iki eilutės pabaigos:

iškirpti -c6- duomenų bazė.txt

Arba naudokite šią komandą, kad gautumėte nuo pradžios iki paskutinės m simboliai iš failo:

iškirpti -c-8 duomenų bazė.txt

4. Iškirpkite kelis laukus iš failo

Taip pat galite spausdinti kelis laukus iš failo naudodami -f vėliava.

cut -f 1,2 duomenų bazė.txt

Išvestis:

VARDAS AMŽIAUS 
Jonas 20
Liza 24
Džekas 18
Bruce'as 23
Nancy 19

5. Ištraukite tekstą naudodami skyriklius

Galite naudoti -d vėliavėlė, kad nurodytumėte skirtuką su -f variantas. Skirstytuvas nurodo simbolį, naudojamą teksto failo laukams atskirti.

Pavyzdžiui, norint išgauti pirmąjį stulpelį /etc/passwd failą, naudokite dvitaškį (:) kaip skirtuką:

cut -d ‘:’ -f 1 /etc/passwd

Panašiai skiriamojo ženklo reikšmė duotame teksto sraute yra viena tarpa:

echo "1% iš 1%" | cut -d ' ' -f 2,3

Išvestis:

1% iš

6. Pakeiskite ekrano išvesties skyriklį

The --išvesties skyriklis vėliavėlė suteikia iškirpimo komandos išvesties lankstumo. Pavyzdžiui, galite naudoti vėliavėlę, norėdami parodyti išvestį atskiroje eilutėje naudodami $'\n' (naujos eilutės) reikšmė, kaip nurodyta toliau:

grep alice /etc/passwd | cut -d ':' -f 1,5,7 --output-delimiter=$'\⁠n'

Išvestis:

Alisa
Alisa
/bin/sh

Be to, taip pat galite pakeisti įvesties failo skyriklį išvestyje pasirinktu skyrikliu, naudodami --išvesties skyriklis vėliava:

grep šaknis /etc/passwd | cut -d ':' -f 1,6,7 --output-limiter=@

Išvestis:

root@/root@/bin/bash
nm-openvpn@/var/lib/openvpn/chroot@/usr/sbin/nologin

7. Iškirpkite laukus tik tada, kai eilutėje yra skyriklis

Naudoti -s pažymėkite, kad ištrauktumėte laukus tik tada, kai eilutėse yra skyriklis. Pavyzdžiui, ši komanda nepateiks lauko -f 1 nebent jame yra tarpo skyriklio:

aidas „HelloWorld“ | cut -d " " -f 1 -s

Priešingai, toliau nurodyta komanda sugeneruos išvestį, nes eilutėje yra nurodytas skyriklis:

aidas "Sveikas pasaulis" | cut -d " " -f 1 -s

Išvestis:

Sveiki

Panašiai kaip skirtuką galite naudoti bet kurį kitą simbolį:

aidas "Labas: Pasaulis" | cut -d ":" -f 2 -s

Išvestis:

Pasaulis

8. Papildykite komandos išvestį

Iškirpimo programa taip pat leidžia spausdinti visus laukus, išskyrus nurodytą lauką. Naudoti --papildyti ši parinktis, kad gautumėte visą informaciją apie pagrindinio vartotojo abonementą, išskyrus penktąjį stulpelį:

grep "root" /etc/passwd | cut -d ':' --papildyti -s -f 5

Išvestis:

root: x: 0:0:/root:/bin/bash

Panašiai, toliau pateiktame pavyzdyje, -f 1 parametras turi būti rodomas Sveiki tekstas, tačiau dėl --papildyti parinktis, spausdinama tik likusi dalis.

aidas "Sveiki visam pasauliui" | cut -d " " -f 1 --papildyti

Išvestis:

visam Pasauliui

Geriausia yra tai, kad galite derinti komandą cut su standartine kitų Linux / Unix komandų išvestimi.

sed yra vienas iš tokių teksto redagavimo įrankių, kuriuos galite naudoti norėdami ištrinti, įterpti ir pakeisti tekstą. Galite lengvai perkelti jo išvestį į iškirpimo komandą.

Toliau pateiktame pavyzdyje grep komanda išvestis nukreipiama į sed paslaugų programą, kuri dvitaškį (:) pakeičia brūkšneliu (-), o tada, iškirpus, rodomi 1, 6 ir 7 laukai taip:

grep alice /etc/passwd | sed 's/:/-/g' | iškirpti -d '' -f 1,5,7

Išvestis:

alice-x-1005-1008-Alice-/home/new/alice-/bin/sh

Darbas su tekstu „Linux“ Naudojant iškirpimą

Iškirpimo komanda yra lanksti ir efektyvi komandų eilutės programa, kurią galite naudoti įvairiais teksto manipuliavimo atvejais. Jis naudoja operacijas tekstui iš failų arba standartinių įvesties duomenų filtruoti. Priemonė taip pat turi pranašumą, leidžiantį vartotojams apriboti norimą rodyti tekstą ir pridėti savo pasirinktus skyriklius.

Tačiau ši komanda taip pat turi tam tikrų apribojimų. Negalite naudoti įprastų posakių, kad nurodytumėte skirtuką arba vienu metu naudoti kelių iškirpimo komandų parinktis. Šiame straipsnyje pateikiami praktiniai šios priemonės pavyzdžiai, padedantys pradedantiesiems aiškiai suprasti teksto manipuliavimo komandas sistemoje Linux.

5 naudingiausios Linux teksto manipuliavimo komandos

Norite patobulinti savo „Linux“ žaidimą ir sužinoti daugiau apie manipuliavimą tekstu? Čia yra penki pagrindiniai „Linux“ komandų eilutės įrankiai, skirti pradėti savo kelionę.

Skaitykite toliau

DalintisTviteryjeEl. paštas
Susijusios temos
  • Linux
  • Linux komandos
  • Linux Elementary
  • Linux Bash Shell
Apie autorių
Rumaisa Niazi (10 straipsnių paskelbta)

Rumaisa yra laisvai samdoma rašytoja MUO. Ji dėvėjo daugybę skrybėlių – nuo ​​matematikės iki informacijos saugumo entuziastės, o dabar dirba SOC analitike. Jos pomėgiai apima skaitymą ir rašymą apie naujas technologijas, Linux platinimą ir viską, kas susiję su informacijos saugumu.

Daugiau iš Rumaisa Niazi

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. knygų ir išskirtinių pasiūlymų!

Norėdami užsiprenumeruoti, spustelėkite čia