Järgmises artiklis näeme mõnda käsurea tööriistad, mida kasutatakse tekstifailidest sobivate stringide või mustrite leidmiseks. Neid tööriistu kasutatakse tavaliselt koos regulaaravaldistega, lühendatult REGEX, mis on otsingumustri kirjeldamiseks ainulaadsed stringid.
Regulaaravaldised on mustrid, mida kasutatakse kindla tähemärkide kombinatsiooni leidmiseks tekstistringist. Regulaarsed väljendid pakuvad väga paindlikku viisi tekstistringide otsimiseks või tuvastamiseks. Kuigi järgmistes ridades me regulaaravaldisi ei näe, kasutame mustreid või stringe.
Otsige terminalist stringe või mustreid
Käsk Grep
Grep on lühend Globaalse regulaaravaldise printimine. See on võimas käsurea tööriist, mis on kasulik failist konkreetse stringi või mustri otsimisel. Grepiga saame kasutada paljusid funktsioone, näiteks neid, mida kolleeg meile mõni aeg tagasi siin blogis selgitas.
Grep-käsu süntaks on üsna lihtne:
grep PATRON [RUTA AL ARCHIVO]
Näiteks stringi otsimiseks 'Ubuntu'failis, millele selles näites helistame text.txt, võtmata arvesse väikeste ja väikeste tähtede vahet, peame terminalis (Ctrl + Alt + T) täitma ainult käsu:
grep -i Ubuntu texto.txt
Käsk sed
Janu on lühike Voo redaktor. See on terminali jaoks veel üks kasulik tööriist, millega saame failis olevat teksti manipuleerida. Sed otsib, filtreerib ja asendab antud failis stringe.
Vaikimisi prindib käsu sed väljundi STDOUT (Standardväljund). See tähendab, et käivitamise tulemus prinditakse terminali faili salvestamise asemel.
Sed-käsku saab kasutada järgmiselt:
sed -OPCIONES COMANDO [RUTA AL ARCHIVO]
Näiteks asendada kõik 'Linux"tekstis"Linux', kasutatav käsk oleks järgmine:
sed 's/Linux/GnuLinux/g' texto.txt
Kui see, mida me otsime, on terminali printimise asemel suunab väljund faili ümber, kasutame ümbersuunamismärki järgmiselt:
sed 's/Linux/GnuLinux/g' texto.txt > salida.txt
Käsu väljund salvestatakse faili väljund.txt ekraanile printimise asemel.
Rohkemate valikute nägemiseks võite seda teha pöörduge mehe lehtede poole:
man sed
ack
Ack on kiire käsurea tööriist, mis on kirjutatud Perlis. Seda peetakse grepi utiliidi sõbralikuks asenduseks, mis loob tulemusi ka visuaalselt atraktiivsel viisil.
et installige ack meie süsteemis peame käivitama terminalis (Ctrl + Alt + T):
sudo apt install ack
Käsk Ack otsib failist või kataloogist ridu, mis sisaldavad otsingukriteeriumide vastet. Seejärel tõstke esile vastav string. Sellel tööriistal on võimalus eristada faile nende laienduste põhjal.
Ack-käsu süntaks oleks umbes järgmine
ack [OPCIONES] PATRÓN [RUTA AL ARCHIVO]
Näiteks termini otsimiseks Linux failis peame täitma:
ack Linux texto.txt
Otsingu tööriist on üsna tark ja kui kasutaja ei esita ühtegi faili ega kataloogi, otsib ta otsingumustrit praegusest kataloogist ja alamkataloogidest.
Järgmises näites pole faili ega kataloogi ette nähtud. Ack tuvastab kataloogis automaatselt saadaoleva faili ja otsib sobivat mustrit:
ack Linux
ripgrep
ripgrep on platvormidevaheline utiliit regulaaravaldise mustrite otsimiseks. See on kiirem kui kõik eespool nimetatud otsingutööriistad ja see otsib kataloogidest rekursiivselt mustreid. See võimaldab teil otsida ka konkreetseid failitüüpe. Vaikimisi jätab ripgrep binaarfailid ja peidetud failid / kataloogid vahele.
et installige ripgrep süsteemis piisab, kui käivitada terminalis järgmine käsk (Ctrl + Alt + T):
sudo apt install ripgrep
Ripgrepi kasutamise süntaks on üsna lihtne:
rg [OPCIONES] PATRÓN [RUTA AL ARCHIVO]
Kui me tahtsime ketti otsida 'Linux'failides, mis asuvad praeguses kataloogis, peame täitma ainult käsu:
rg Linux
Rohkemate valikute nägemiseks saavad kasutajad seda kasutada mehe lehed:
man rg
Hõbedaotsija
et installige see tööriistUbuntus peame avama ainult terminali (Ctrl + Alt + T) ja kirjutama käsu:
sudo apt install silversearcher-ag
Silver Searcher on platvormidevaheline avatud lähtekoodiga otsingu tööriist, mis sarnaneb akuga, kuid on rõhutatud kiirusele. See muudab failidest konkreetse stringi leidmise võimalikult lühikese aja jooksul lihtsaks. Kasutatav süntaks oleks järgmine:
ag OPCIONES PATRÓN_DE_BÚSQUEDA /ruta/al/archivo
Näiteks otsimiseks 'Linux'failis text.txt, peame terminali kirjutama (Ctrl + Alt + T):
ag Linux texto.txt
Rohkemate võimaluste nägemiseks võite pöörduda mehe lehed:
man ag
Need on vaid mõned Linuxis teksti otsimiseks, filtreerimiseks ja manipuleerimiseks kõige sagedamini kasutatavad käsurea tööriistad.