Linuxi-põhised operatsioonisüsteemid pakuvad palju käsurea tekstitöötluse utiliite, mida saate oma igapäevases rutiinis kasutada. Käsk Lõika on üks selline tekstiga manipuleerimise utiliit, mis kasutab eraldajaid, baite, välju ja veerge, et tuua lamefaili andmebaasist või realt vajalik string.

Kuna lamefailide andmebaasil puudub struktuurne seos ja kirjed eraldatakse eraldajate abil, on lõikamine ideaalne tööriist märkide või baitide teabe eraldamiseks. Selles artiklis käsitletakse üksikasjalikult lõikekäsku ja tutvustatakse praktilisi näiteid erinevate filtrivalikutega, et saaksite tööriistaga alustada.

Ülevaade lõigatud käsust

cut kasutab järgmist põhisüntaksit:

lõigatud 

Samuti saate selle torujuhtmetega ühendada teiste käskudega järgmiselt:

kaja "tähemärkide_string" | lõigatud 

Pange tähele, et suvandite puudumine tekitab vea. Siin on mõned lipud, mida saate lõikega kasutada selle erinevate funktsioonide käivitamiseks:

Võimalus Kirjeldus
-b Lõikab baidipositsiooni järgi
-c Lõikab tähemärgi asukoha järgi
-d Ekstraheerib stringi, kasutades välja valikuga (-f) määratud eraldajat
-f Väljavõtted määratud välja järgi
-s Väljavõtted ainult eraldajate jaoks
-- täiendada Printige välja väljund, välja arvatud teie määratud väli
--väljund-piiraja Asendage olemasolev eraldaja enda määratud eraldusmärgiga

Siin on mõned näited lõikekäsklusest, mis aitavad teil tööriista ja selle funktsioone paremini mõista.

1. Eraldage stringist konkreetsed märgid

Kasuta -b valik märgistringide toomiseks nende baitide arvu järgi järgmiselt:

kaja "Tere maailm" | lõika -b 1,2,3,5,8,9

Väljund:

Heloor

Samuti saate stringi asemel määrata failitee:

lõika -b 1,2,3,4,5 failinimi.txt

Või saate eraldada märgid vastavalt nende asukohale tekstis. Kasuta -c suvand, millele järgneb märkide jada/järjestus, mida peate tõmbama järgmiselt:

kaja "Tere maailm" | lõika -c 1,2,3,5,6,8,10,11

Väljund:

Tere vana

Samamoodi kasutage lamefaili andmebaasist väljade või veergude toomiseks käsku cut koos -f lipu valik:

cut -f 3 andmebaas.txt

2. Lõika baitide või tähemärkide vahemik

Võite kasutada ka -b liputage käsuga cut mitme baitide vahemiku ekstraktimiseks ja printimiseks järgmiselt:

lõika -b 1-7,16-23 andmebaas.txt

Saate määrata märkide toomise vahemiku, kasutades nuppu -c liputage järgmiselt:

lõika -c 1-7,16-23 andmebaas.txt

3. Ekstraktige tekst algus- või lõpppositsioonidest

Kasuta -cn- võimalus eraldada tekst n-ndast märgist kuni rea lõpuni, kus n on stringi märgi indeks.

Näiteks stringi eraldamiseks alates kuuendast märgist kuni rea lõpuni:

lõika -c6- andmebaas.txt

Või kasutage algusest lõpuni toomiseks järgmist käsku m märgid failist:

lõika -c-8 andmebaas.txt

4. Lõika failist mitu välja

Samuti saate failist printida mitu välja, kasutades -f lipp.

cut -f 1,2 andmebaas.txt

Väljund:

NIMI VANUS 
Jhon 20
Liisa 24
Jack 18
Bruce 23
Nancy 19

5. Ekstraktige tekst eraldajate abil

Saate kasutada -d lipp, et määrata eraldusmärk -f valik. Eraldaja määrab märgi, mida kasutatakse tekstifaili väljade eraldamiseks.

Näiteks esimese veeru ekstraktimiseks /etc/passwd faili, kasutage eraldajana koolonit (:):

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

Samamoodi on antud tekstivoo eraldaja väärtus üks tühik:

kaja "1% 1%st" | lõika -d ' ' -f 2,3

Väljund:

1% -st

6. Muutke kuva väljunderaldajat

The --väljund-piiraja lipp lisab lõikekäsu väljundile paindlikkust. Näiteks saate lipu abil kuvada väljundi eraldi real, kasutades $'\n' (uusrea) väärtus järgmiselt:

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

Väljund:

alice
Alice
/bin/sh

Lisaks saate sisendfaili eraldaja asendada väljundis enda valitud eraldajaga, kasutades --väljund-piiraja lipp:

grep juur /etc/passwd | cut -d ':' -f 1,6,7 --output-delimiter=@

Väljund:

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

7. Lõika väljad ainult siis, kui joon sisaldab eraldajat

Kasuta -s liputage väljade ekstraheerimiseks ainult siis, kui read sisaldavad eraldajat. Näiteks järgmine käsk ei too välja -f 1 välja arvatud juhul, kui sellel on tühiku eraldaja:

kaja "HelloWorld" | lõika -d " " -f 1 -s

Vastupidi, alltoodud käsk genereerib väljundi, kuna string sisaldab määratud eraldajat:

kaja "Tere maailm" | lõika -d " " -f 1 -s

Väljund:

Tere

Samamoodi saate eraldajana kasutada mis tahes muud märki:

kaja "Tere: Maailm" | lõika -d ":" -f 2 -s

Väljund:

Maailm

8. Täiendage käsuväljundit

Lõikamise utiliit võimaldab ka printida kõik väljad peale määratud välja. Kasuta -- täiendada alljärgnev suvand, et hankida kõik juurkasutajakonto andmed, välja arvatud viies veerg:

grep "juur" /etc/passwd | lõika -d ':' --komplement -s -f 5

Väljund:

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

Samamoodi on allolevas näites -f 1 parameeter peab kuvama Tere tekst aga tänu -- täiendada valikut, prindib see ainult ülejäänud osa.

kaja "Tere kogu maailmale" | lõika -d " " -f 1 --täiend

Väljund:

kogu Maailmale

Parim osa on see, et saate kombineerida cut-käsku teiste Linuxi/Unixi käskude standardväljundiga.

sed on üks selline teksti redigeerimise tööriist, mida saate kasutada teksti kustutamiseks, sisestamiseks ja asendamiseks. Saate selle väljundi hõlpsalt suunata käsule lõika.

Allolevas näites grep käsk väljund suunatakse utiliiti sed, mis asendab kooloni (:) sidekriipsuga (-) ja seejärel kuvab cut väljad 1, 6 ja 7 järgmiselt:

grep alice /etc/passwd | sed 's/:/-/g' | lõigatud -d ' ' -f 1,5,7

Väljund:

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

Tekstiga töötamine Linuxis Lõika kasutamine

Käsk Lõika on paindlik ja tõhus käsurea utiliit, mida saate kasutada mitmesugustel tekstitöötluse kasutusjuhtudel. See kasutab toiminguid teksti filtreerimiseks failidest või standardsetest sisendandmetest. Utiliidil on ka eelis, mis võimaldab kasutajatel piirata kuvatavat teksti ja lisada omal valikul eraldajaid.

Sellel käsul on aga ka mõned piirangud. Eraldaja määramiseks ei saa kasutada regulaaravaldisi ega kasutada korraga mitut kärpimiskäsu valikut. Selles artiklis on käsitletud selle utiliidi põhi- ja kõrgtaseme praktilisi näiteid, mis aitavad algajatel Linuxi tekstiga manipuleerimise käskudest selgelt aru saada.

5 kõige kasulikumat Linuxi tekstiga manipuleerimise käsku

Kas soovite oma Linuxi mängu täiustada ja tekstiga manipuleerimise kohta rohkem teada saada? Siin on viis parimat Linuxi käsurea tööriista, et alustada oma teekonda.

Loe edasi

JagaSäutsMeil
Seotud teemad
  • Linux
  • Linuxi käsud
  • Linuxi algklass
  • Linux Bash Shell
Autori kohta
Rumaisa Niazi (10 avaldatud artiklit)

Rumaisa on MUO vabakutseline kirjanik. Ta on kandnud palju mütse, alates matemaatikust kuni infoturbe entusiastini, ja töötab nüüd SOC analüütikuna. Tema huvid hõlmavad uute tehnoloogiate, Linuxi distributsioonide ja kõige muu infoturbega seotud lugemist ja kirjutamist.

Veel Rumaisa Niazist

Liituge meie uudiskirjaga

Liituge meie uudiskirjaga tehniliste näpunäidete, arvustuste, tasuta e-raamatute ja eksklusiivsete pakkumiste saamiseks!

Tellimiseks klõpsake siin