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.
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
- Linux
- Linuxi käsud
- Linuxi algklass
- Linux Bash Shell

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.
Liituge meie uudiskirjaga
Liituge meie uudiskirjaga tehniliste näpunäidete, arvustuste, tasuta e-raamatute ja eksklusiivsete pakkumiste saamiseks!
Tellimiseks klõpsake siin