Linuxin komentorivin hallinta · Oppitunti

Tekstin suodattaminen komennolla `grep`

Ottakaa `grep` haltuun tehokasta hahmonsovitusta ja tiedostoissa tai komentojen tulosteissa olevan tekstin suodattamista varten.

Oppitunti 2/410 vaihetta

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.txt

Haku 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" *.log

Kirjainkoosta 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.txt

Epä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.py

Esiintymien 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.log

Osumien 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!

Aloita maksutta

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

  1. Vakiovirrat ja uudelleenohjaus
  2. Tekstin suodattaminen komennolla `grep`
  3. Tekstin käsittely komennoilla `sed` ja `awk`
  4. Tulosteen yhdistäminen ja lajittelu komennoilla sort, uniq ja cut
← Takaisin: Linuxin komentorivin hallinta