Linux Professional Institute Learning Logo.
Preskoči na glavni sadržaj
  • Home
    • Svi resursi
    • LPI materijali za učenje
    • Postanite saradnik
    • Izdavači partneri
    • Postanite izdavački partner
    • O nama
    • FAQ
    • Saradnici
    • Roadmap
    • Kontaktiraj nas
  • LPI.org
3.2 Lekcija 2
Tema 1: Linux zajednica i open sors karijera
1.1 Evolucija Linux-a i popularni operativni sistemi
  • 1.1 Lekcija 1
1.2 Glavne open sors aplikacije
  • 1.2 Lekcija 1
1.3 Softver otvorenog koda i licenciranje
  • 1.3 Lekcija 1
1.4 ICT vještine i rad sa Linux-om
  • 1.4 Lekcija 1
Tema 2: Kretanje kroz Linux sistem
2.1 Osnove komande linije
  • 2.1 Lekcija 1
  • 2.1 Lekcija 2
2.2 Upotreba komande linije u traženju pomoći
  • 2.2 Lekcija 1
2.3 Korištenje direktorija i izlistavanje podataka
  • 2.3 Lekcija 1
  • 2.3 Lekcija 2
2.4 Kreiranje, premještanje i brisanje podataka
  • 2.4 Lekcija 1
Tema 3: Moć komandne linije
3.1 Arhiviranje podataka uz pomoć komande linije
  • 3.1 Lekcija 1
3.2 Pretraživanje i ekstrakcija informacija iz podataka
  • 3.2 Lekcija 1
  • 3.2 Lekcija 2
3.3 Pretvaranje komandi u skriptu
  • 3.3 Lekcija 1
  • 3.3 Lekcija 2
Tema 4: Linux operativni sistem
4.1 Odabir operativnog sistema
  • 4.1 Lekcija 1
4.2 Razumijevanje računalnog hardvera
  • 4.2 Lekcija 1
4.3 Gdje se smještaju podaci
  • 4.3 Lekcija 1
  • 4.3 Lekcija 2
4.4 Računalo na mreži
  • 4.4 Lekcija 1
Tema 5: Sigurnost i prava nad podacima
5.1 Osnovna sigurnost i identifikacija vrste korisnika
  • 5.1 Lekcija 1
5.2 Kreiranje korisnika i grupa
  • 5.2 Lekcija 1
5.3 Upravljanje pravima i ovlastima nad podacima
  • 5.3 Lekcija 1
5.4 Specijalni direktoriji i podaci
  • 5.4 Lekcija 1
How to get certified
  1. Tema 3: Moć komandne linije
  2. 3.2 Pretraživanje i ekstrakcija informacija iz podataka
  3. 3.2 Lekcija 2

3.2 Lekcija 2

Sertifikat:

Linux Essentials

Verzija:

1.6

Tema:

3 Moć komandne linije

Cilj:

3.2 Pretraga i ekstrakcija podataka iz datoteka

Lekcija:

2 od 2

Uvod

U ovoj lekciji ćemo pogledati alate koji se koriste za manipulaciju tekstom. Ove alate često koriste administratori sistema ili programi za automatsko praćenje ili identifikaciju specifičnih informacija koje se ponavljaju.

Pretraga unutar datoteka sa grep

Prvi alat o kojem ćemo govoriti u ovoj lekciji je grep. grep je skraćenica od izraza “global regular expression print” i njegova glavna namjera je pretraživanje unutar datoteka za specificirani uzorak. Komanda daje liniju koja sadrži navedeni uzorak označen crvenom bojom.

$ grep bash /etc/passwd
root:x:0:0:root:/root:/bin/bash
user:x:1001:1001:User,,,,:/home/user:/bin/bash

grep, kao i većina komandi, također se može podesiti korištenjem opcija. Evo najčešćih:

-i

pretraga je neosjetljiva na velika i mala slova

-r

pretraga je rekurzivna (pretražuje sve datoteke unutar datog direktorija i njegovih poddirektorija)

-c

pretraga broji broj podudaranja

-v

obrnite podudaranje, da ispišete redove koji se ne podudaraju sa pojmom za pretraživanje

-E

uključuje proširene regularne izraze (potrebne nekim naprednijim meta znakovima kao što su | , + and ?)

grep ima mnogo drugih korisnih opcija. Konsultujte man stranicu da saznate više o tome.

Regularni izrazi

Drugi alat je veoma moćan. Koristi se za opisivanje bitova teksta unutar datoteka, koji se također nazivaju regularni izrazi. Regularni izrazi su izuzetno korisni u izdvajanju podataka iz tekstualnih datoteka konstruiranjem obrazaca. Obično se koriste u skriptama ili pri programiranju sa jezicima visokog nivoa, kao što su Perl ili Python.

Kada radite sa regularnim izrazima, veoma je važno imati na umu da je svaki znak bitan i da je obrazac napisan sa svrhom da se podudara sa određenim nizom znakova, poznatim kao string. Većina uzoraka koristi normalne ASCII simbole, kao što su slova, cifre, interpunkcija ili drugi simboli, ali može koristiti i Unicode znakove kako bi odgovarao bilo kojoj drugoj vrsti teksta.

Sljedeća lista objašnjava meta znakove regularnih izraza koji se koriste za formiranje obrazaca.

.

Usklađuje bilo koji pojedinačni znak (osim novog reda)

[abcABC]

Uskladite bilo koji znak unutar zagrada

[^abcABC]

Uskladite bilo koji znak osim onih u zagradama

[a-z]

Uskladite bilo koji znak u rasponu

[^a-z]

Uskladite bilo koji znak osim onih u rasponu

sun|moon

Pronađite bilo koji od navedenih nizova

^

Početak reda

$

Kraj reda

Sve funkcionalnosti regularnih izraza mogu se implementirati i kroz grep. Možete vidjeti da u gornjem primjeru riječ nije okružena dvostrukim navodnicima. Da bi se spriječilo da šel interpretira sam meta-znak, preporučuje se da složeniji uzorak bude između dvostrukih navodnika (" "). Za potrebe prakse, koristićemo dvostruke navodnike kada implementiramo regularne izraze. Ostali navodnici zadržavaju svoju normalnu funkcionalnost, kao što je objašnjeno u prethodnim lekcijama.

Sljedeći primjeri naglašavaju funkcionalnost regularnih izraza. Trebat će nam podaci unutar datoteke, stoga sljedeći skup komandi samo dodaje različite nizove u datoteku text.txt.

$ echo "aaabbb1" > text.txt
$ echo "abab2" >> text.txt
$ echo "noone2" >> text.txt
$ echo "class1" >> text.txt
$ echo "alien2" >> text.txt
$ cat text.txt
aaabbb1
abab2
noone2
class1
alien2

Prvi primjer je kombinacija pretraživanja kroz datoteku bez i sa regularnim izrazima. Da bismo u potpunosti razumjeli regularne izraze, vrlo je važno pokazati razliku. Prva komanda traži tačan niz, bilo gdje u redu, dok druga komanda traži skupove znakova koji sadrže bilo koji od znakova između zagrada. Stoga su rezultati komandi različiti.

$ grep "ab" text.txt
aaabbb1
abab2
$ grep "[ab]" text.txt
aaabbb1
abab2
class1
alien2

Drugi set primjera pokazuje primjenu meta-znaka na početku i kraju reda. Veoma je važno navesti potrebu da se 2 znaka stave na pravo mjesto u izrazu. Kada se specificira početak reda, meta-znak mora biti prije izraza, dok, kada se specificira kraj reda, meta-znak mora biti iza izraza.

$ grep "^a" text.txt
aaabbb1
abab2
alien2
$ grep "2$" text.txt
abab2
noone2
alien2

Pored prethodno objašnjenih meta-karaktera, regularni izrazi takođe imaju meta-karaktere koji omogućavaju množenje prethodno specificiranog uzorka:

*

Nula ili više od prethodnog uzorka

+

Jedan ili više prethodnih obrazaca

?

Nula ili jedan od prethodnog uzork

Za meta-znakove množitelja, komanda ispod traži niz koji sadrži ab, jedan znak i jedan ili više prethodno pronađenih znakova. Rezultat pokazuje da je grep pronašao niz aaabbb1, koji odgovara dijelu abbb kao i abab2. Budući da je znak + proširen extended karakter regularnog izraza, moramo primijeniti opciju -E komandi grep.

$ grep -E "ab.+" text.txt
aaabbb1
abab2

Većina meta-karaktera je razumljiva sama po sebi, ali mogu postati zeznuti kada se koriste po prvi put. Prethodni primjeri predstavljaju mali dio funkcionalnosti regularnih izraza. Isprobajte sve meta znakove iz gornje tabele da biste razumjeli više o tome kako funkcioniraju.

Vođene vježbe

Koristeći grep i datoteku /usr/share/hunspell/en_US.dic, pronađite linije koje odgovaraju sljedećim kriterijima:

  1. Svi redovi koji sadrže riječ cat bilo gdje u redu.

  2. Svi redovi koji ne sadrže nijedan od sljedećih znakova: sawgtfixk.

  3. Svi redovi koji počinju sa bilo koja 3 slova i riječju dig.

  4. Svi redovi koji završavaju sa najmanje jednim e.

  5. Svi redovi koji sadrže jednu od sljedećih riječi: org, kay ili tuna.

  6. Broj redova koji počinju sa jednim ili bez c nakon čega slijedi niz ati.

Istraživačke vježbe

  1. Pronađite regularni izraz koji odgovara riječima u redu “Include” i ne odgovara onima u redu “Exclude”:

    • Include: pot, spot, apot

      Exclude: potic, spots, potatoe

    • Include: arp99, apple, zipper

      Exclude: zoo, arive, attack

    • Include: arcane, capper, zoology

      Exclude: air, coper, zoloc

    • Include: 0th/pt, 3th/tc, 9th/pt

      Exclude: 0/nm, 3/nm, 9/nm

    • Include: Hawaii, Dario, Ramiro

      Exclude: hawaii, Ian, Alice

  2. Koja se još korisna komanda obično koristi za pretraživanje unutar datoteka? Koje dodatne funkcionalnosti ima?

  3. Razmišljajući o prethodnoj lekciji, upotrijebite jedan od primjera i pokušajte potražiti određeni obrazac unutar izlaza komande, uz pomoć grep.

Sažetak

U ovom labu ste naučili:

  • Regularni izrazi meta-znakovi

  • Kako kreirati obrasce sa regularnim izrazima

  • Kako pretraživati ​​unutar datoteka

Komande korištene u ovoj vježbi:

grep

Pretražuje karakter ili niz unutar datoteke

Odgovor na vođene vježbe

Koristeći grep i datoteku /usr/share/hunspell/en_US.dic, pronađite linije koje odgovaraju sljedećim kriterijima:

  1. Svi redovi koji sadrže riječ cat bilo gdje u redu.

    $ grep "cat" /usr/share/hunspell/en_US.dic
    Alcatraz/M
    Decatur/M
    Hecate/M
    ...
  2. Svi redovi koji ne sadrže nijedan od sljedećih znakova: sawgtfixk.

    $ grep -v "[sawgtfixk]" /usr/share/hunspell/en_US.dic
    49269
    0/nm
    1/n1
    2/nm
    2nd/p
    3/nm
    3rd/p
    4/nm
    5/nm
    6/nm
    7/nm
    8/nm
    ...
  3. Svi redovi koji počinju sa bilo koja 3 slova i riječju dig.

    $ grep "^...dig" /usr/share/hunspell/en_US.dic
    cardigan/SM
    condign
    predigest/GDS
    ...
  4. Svi redovi koji završavaju sa najmanje jednim e.

    $ grep -E "e+$" /usr/share/hunspell/en_US.dic
    Anglicize
    Anglophobe
    Anthropocene
    ...
  5. Svi redovi koji sadrže jednu od sljedećih riječi: org, kay ili tuna.

    $ grep -E "org|kay|tuna" /usr/share/hunspell/en_US.dic
    Borg/SM
    George/MS
    Tokay/M
    fortunate/UY
    ...
  6. Broj redova koji počinju sa jednim ili bez c nakon čega slijedi niz ati.

    $ grep -cE "^c?ati" /usr/share/hunspell/en_US.dic
    3

Odgovor na istraživačke vježbe

  1. Pronađite regularni izraz koji odgovara riječima u redu “Include” i ne odgovara onima u redu “Exclude”:

    • Include: pot, spot, apot

      Exclude: potic, spots, potatoe

      Odgovor: pot$

    • Include: arp99, apple, zipper

      Exclude: zoo, arive, attack

      Odgovor: p+

    • Include: arcane, capper, zoology

      Exclude: air, coper, zoloc

      Odgovor: arc|cap|zoo

    • Include: 0th/pt, 3th/tc, 9th/pt

      Exclude: 0/nm, 3/nm, 9/nm

      Odgovor: [0-9]th.+

    • Include: Hawaii, Dario, Ramiro

      Exclude: hawaii, Ian, Alice

      Odgovor: ^[A-Z]a.*i+

  2. Koja se još korisna komanda obično koristi za pretraživanje unutar datoteka? Koje dodatne funkcionalnosti ima?

    Komanda sed. Komanda može pronaći i zamijeniti znakove ili skupove znakova unutar datoteke.

  3. Razmišljajući o prethodnoj lekciji, upotrijebite jedan od primjera i pokušajte potražiti određeni obrazac unutar izlaza komande, uz pomoć grep.

    Uzeo sam jedan od odgovora iz istraživačkih vježbi i potražio red koji je čitao, pisao i izvršavao kao dozvole grupe. Vaš odgovor može biti drugačiji, ovisno o komandi koju ste odabrali i uzorku koji ste kreirali.

    $ cat contents.txt | tr -s " " | grep "^....rwx"

    Ova vježba vam je pokazala da grep također može primati unos od različitih komandi i može pomoći u filtriranju generisanih informacija.

Linux Professional Insitute Inc. Sva prava zadržana. Posjeti web stranicu materijala za učenje: https://learning.lpi.org
Ovaj rad je licenciran pod Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License

Sljedeća lekcija

3.3 Pretvaranje komandi u skriptu (3.3 Lekcija 1)

Pročitaj narednu lekciju

Linux Professional Insitute Inc. Sva prava zadržana. Posjeti web stranicu materijala za učenje: https://learning.lpi.org
Ovaj rad je licenciran pod Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License

LPI je neprofitna organizacija.

© 2023 Linux Profesional Institut (LPI) je globalni certifikacijski standard, podrške za karijeru, te vodeća organizacija za open sors profesionalce. Sa više od 200.000 certificiranih ljudi, prvi je najveći, svjetski vendor za Linux i open sors certifikaciju. LPI trenutno ima certificirane profesionalce u 180 zemalja širom svijeta, dostavlja testove na više jezika, te ima oko stotine trening partnera.

Naša svrha je omogućiti ekonomske i kreativne prilike za svakog, čineći dostupnim certifikaciju u open sors znanju i vještinama svima.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Kontaktirajte nas
  • Privatnost i politika kolačića

Primijetili ste grešku ili želite pomoći poboljšati ovu stranicu? Molimo prijavite nam!.

© 1999–2023 The Linux Professional Institute Inc. Sva prava zadržana.