Tekstin suodattaminen komennolla `grep`
Ottakaa `grep` haltuun tehokasta hahmonsovitusta ja tiedostoissa tai komentojen tulosteissa olevan tekstin suodattamista varten.
Tekstin suodattaminen komennolla `grep` on ilmainen Linuxin komentorivin hallinta-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Linuxin komentorivin hallinta-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Linuxin komentorivin hallinta-kurssilla on yhteensä 4 oppituntia.
Mikä on `grep`?
Tervetuloa tekstin suodatuksen maailmaan! Tässä oppitunnissa opitte käyttämään tehokasta grep-komentoa.
grep tulee sanoista Global Regular Expression Print. Se on tehokas komentorivityökalu, jolla etsitään tekstimuotoisista tietojoukoista säännöllistä lauseketta vastaavia rivejä.
- Sen avulla löydätte nopeasti tiettyjä tietoja tiedostoista.
- Se suodattaa muiden komentojen tulostetta.
- Se on korvaamaton järjestelmänhallinnassa, ohjelmoinnissa ja data-analyysissä.
Ensimmäinen `grep`-hakunne
grep-komennon yksinkertaisin käyttötapa on etsiä tiettyä sanaa tai kuviota tiedostosta.
Yleinen syntaksi on: grep "pattern" filename
Etsitään lokitiedostosta kaikki rivit, jotka sisältävät sanan "error". Oletetaan, että my_log.txt sisältää erilaisia järjestelmäviestejä.
echo "System started.
Error: Disk full.
Warning: Low memory.
Error: Network down." > my_log.txt
grep "Error" my_log.txtHaku useista tiedostoista
grep ei rajoitu yhteen tiedostoon. Voitte etsiä useista tiedostoista tai jopa kaikista hakemiston tiedostoista.
Jos haluatte etsiä useista tiedostoista, luetelkaa ne yksinkertaisesti kuvion jälkeen. Voitte etsiä nykyisen hakemiston kaikista tiedostoista käyttämällä jokerimerkkiä, kuten *.
Etsitään merkkijonoa "failed" kaikista .log-tiedostoista.
echo "Login success" > auth.log
echo "Login failed" > secure.log
echo "System OK" > kernel.log
grep "failed" *.logKirjainkoosta riippumaton haku (`-i`)
Oletusarvoisesti grep erottelee isot ja pienet kirjaimet. Tämä tarkoittaa, että "Error" eroaa merkkijonoista "error" ja "ERROR".
Voitte tehdä kirjainkoosta riippumattoman haun käyttämällä -i-valitsinta (ignore-case).
Kokeilkaa etsiä kaikki merkkijonon "apple" esiintymät riippumatta siitä, miten se on kirjoitettu isoilla ja pienillä kirjaimilla.
echo "Apple is good.
I like apples.
APPLES are red." > fruit.txt
grep -i "apple" fruit.txtEpäyhtenäisten rivien etsiminen (`-v`)
Joskus haluatte nähdä kaikki rivit, jotka eivät sisällä tiettyä kuviota. Tätä kutsutaan käänteiseksi osumaksi.
-v-valitsin (invert-match) tekee juuri tämän. Se näyttää kaikki rivit, jotka eivät vastaa annettua kuviota.
Suodatetaan komentosarjasta pois rivit, jotka sisältävät sanan "comment".
echo "# This is a comment
print("Hello")
# Another comment
x = 10" > script.py
grep -v "#" script.pyEsiintymien laskeminen (`-c`)
Vastaavien rivien näyttämisen sijaan saatatte haluta vain tietää, kuinka moni rivi vastaa kuviota.
-c-valitsin (count) käskee grep-komentoa tulostamaan vain kuvioon täsmäävien rivien lukumäärän.
Kuinka monella rivillä järjestelmälokissamme esiintyy sana "warning"?
echo "Info: System started.
Warning: Low disk space.
Info: User logged in.
Warning: High CPU usage." > system.log
grep -c "Warning" system.logOsumien paikantaminen rivinumeroiden avulla (`-n`)
Kun selvitätte suuren tiedoston virheitä tai analysoitte sitä, täsmällisen rivinumeron tietäminen voi olla erittäin hyödyllistä.
-n-valitsin (line-number) näyttää rivinumeron ennen jokaista osuman sisältävää riviä.
Etsitään ohjelmatiedostosta sanan "function" rivinumerot.
echo "def setup():
print("Setting up")
def run_function():
pass
# Main part" > program.py
grep -n "function" program.py`grep` ja vakiotietosyöte
Yksi grep-komennon tehokkaimmista ominaisuuksista on sen kyky toimia putkien (|) kanssa.
Voitte ohjata yhden komennon tulosteen putkella grep-komennon syötteeksi ja suodattaa näin komennon tulostetta reaaliaikaisesti.
Luetellaan kaikki tiedostot ja suodatetaan sitten näkyviin vain ne, joiden pääte on .txt.
touch report.txt document.pdf image.jpg notes.txt
ls -l | grep ".txt"`grep`-pikatesti
Olette oppineet useita hyödyllisiä grep-valitsimia. Testataan ymmärrystänne!
Ajatellaan tiedostoa nimeltä server.log, joka sisältää viestejä kuten "ERROR", "Error" ja "info".
Kertaus: suodattaminen `grep`-komennolla
Hienoa työtä! Hallitsette nyt grep-komennon perusteet tekstin suodattamisessa.
Tässä lyhyt yhteenveto käsitellyistä asioista:
grep "pattern" filename: kuvion perushaku tiedostosta.grep "pattern" *.log: haku useista tiedostoista jokerimerkkejä käyttämällä.-i: kirjainkoon huomiotta jättäminen haussa.-v: haun kääntäminen niin, että näytetään rivit, jotka eivät sisällä kuviota.-c: osumia sisältävien rivien lukumäärän laskeminen.-n: osumia sisältävien rivien rivinumeroiden näyttäminen.- Putkitus komennolla
|: muiden komentojen tulosteen suodattaminen.
Näiden valitsimien ansiosta grep on erittäin monipuolinen työkalu tietojen poimimiseen ja analysointiin komentorivillä. Jatkakaa harjoittelua!
Opi Linuxin komentorivin hallinta tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 12
- Oppitunnit
- 48
Usein kysytyt kysymykset
Onko oppitunti ”Tekstin suodattaminen komennolla `grep`” ilmainen?
Kyllä – oppitunnin ”Tekstin suodattaminen komennolla `grep`” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Linuxin komentorivin hallinta-kurssin, päivitä CoddyKit PROhon. Linuxin komentorivin hallinta-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Tekstin suodattaminen komennolla `grep`”?
Ottakaa `grep` haltuun tehokasta hahmonsovitusta ja tiedostoissa tai komentojen tulosteissa olevan tekstin suodattamista varten. Harjoittelet Linuxin komentorivin hallinta-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Linuxin komentorivin hallinta-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Linuxin komentorivin hallinta-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”Tekstin suodattaminen komennolla `grep`”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Linuxin komentorivin hallinta-oppitunnilla?
Kyllä. Jokainen Linuxin komentorivin hallinta-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Vakiovirrat ja uudelleenohjaus
- Tekstin suodattaminen komennolla `grep`
- Tekstin käsittely komennoilla `sed` ja `awk`
- Tulosteen yhdistäminen ja lajittelu komennoilla sort, uniq ja cut