Grep kasutamine: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Isibul (talk | contribs)
No edit summary
Ffjodoro (talk | contribs)
No edit summary
Line 1: Line 1:
Grep on üks enimkasutatavaid utiliite, kus saab väga efektiivselt kasutada regulaaravaldisi.
Grep on käsu rea teksti otsingu vahend mis oli originaalselt loodud Unixile. Selle nimi tuleneb ed käsust g/r/e/p (global / regular expression / print). Tema eesmärgiks on otsida täpselt seda mida tal palutakse olenevalt käsust.
'''grep''', '''egrep''', '''fgrep''', '''rgrep''' - väljastab sisendisse antust kõik read, mis sisaldavad otsitud tekstifraasi või regulaaravaldist.
'''grep''', '''egrep''', '''fgrep''', '''rgrep''' - väljastab sisendisse antust kõik read, mis sisaldavad otsitud tekstifraasi või regulaaravaldist.


Lihtsamalt öeldes kasutatakse grep'i faili SISU järgi otsimiseks/vaatamiseks - "grep MIDA KUST"
Lihtsamalt öeldes kasutatakse grep'i faili SISU järgi otsimiseks/vaatamiseks - "grep MIDA KUST"
=Grep süntaks=
<pre>grep [-võtmed] regexp [FAIL...]</pre>


=Võtmed=
=Võtmed=
* -i, --ignore-case - Otsing ei ole enam tähtede suhtes tõstutundlik.
* -i, --ignore-case - Otsing ei ole enam tähtede suhtes tõstutundlik.
*-w, --word-regexp - Otsib täpselt seda sõna, mille otsingusse kirjutad.
* -w, --word-regexp - Otsib täpselt seda sõna, mille otsingusse kirjutad.
* -c, --count - Loeb ära, mitmes reas sinu otsitav sõna esines.
* -c, --count - Loeb ära, mitmes reas sinu otsitav sõna esines.
* -n, --line-number - Lisab vastele ka rea numbri.
* -n, --line-number - Lisab vastele ka rea numbri.
* -r, --recursive - Uurib ka alamkatalooge.
* -r, --recursive - Uurib ka alamkatalooge.
* -v, --invert-match - Väljastab read, mis ei sisalda otsitut.
* -v, --invert-match - Vastupidine. Väljastab read, mis ei sisalda otsitut.
 
* -l, --files-with-matches Näidata ainult nende failide nimed ühekordselt, milles leidub sobivaid ridu
 
* -q, --quiet, --silent - tulemust ei väljastata, töötatakse välja ainult lõpetamiskood (0 - leidus, 1 - ei leidunud, 2 - viga)
* -s, --no-messages Peida tõrketeateid puduvate või mitte loetavate failide kohta.


=Näited=
=Näited=
Line 30: Line 36:
<pre>grep -w boo /etc/passwd</pre>
<pre>grep -w boo /etc/passwd</pre>


Kuid kui otsitavas failis olemas sõna "boo" koos kriipsuga, siis see langeb otsingu parameetrite alla. Näide: "boo-aa".
Selleks, et tulemusena saada ainult sõna boo, vaja kasutada võtit -x 


<pre>grep -x boo /etc/passwd</pre>


Kui tahad otsida kataloogist ning ka kõikidest alamkataloogidest, siis pead kasutama grep'i järel võtit -r
Kui tahad otsida kataloogist ning ka kõikidest alamkataloogidest, siis pead kasutama grep'i järel võtit -r
Line 46: Line 55:




Kui huvitab, mitmes erinevas reas otsitav sõna esineb, siis kasutame võtit -c. Kui tahame aga näha numbriliselt, mitmendas reas sõna esineb siis kasutame võtit -n
Kui huvitab, mitmes erinevas reas otsitav sõna esineb, siis kasutame võtit -c.  
<pre>grep -c false /etc/passwd</pre>
 


<pre>grep -c false /etc/passwd</pre>
Kui tahame aga näha numbriliselt, mitmendas reas sõna esineb siis kasutame võtit -n
<pre>grep -n false /etc/passwd</pre>
<pre>grep -n false /etc/passwd</pre>




Võti –v muudab otsingu parameetreid nii, et ainult see üks sõna mida te ei taha eraldatakse nimekirjast.
<pre>grep -v peeter /etc/passwd</pre>
<pre>grep -v peeter /etc/passwd</pre>
'''Tulemus:''' väljastab kõik read, välja arvatud rea, kus esines sõna "peeter"
'''Tulemus:''' väljastab kõik read, välja arvatud rea, kus esines sõna "peeter"
Line 60: Line 72:


'''Tulemus:''' info kõvaketaste kohta
'''Tulemus:''' info kõvaketaste kohta


<pre>cat /proc/cpuinfo | grep -i "Model"</pre>
<pre>cat /proc/cpuinfo | grep -i "Model"</pre>
Line 71: Line 82:
<pre>grep --color peeter /etc/passwd</pre>
<pre>grep --color peeter /etc/passwd</pre>


Otsida võib ka keerulisemaid teksti kombinatsioone. Alljärgnev käsk prindib välja kõik read mis algavad ’p’ tähega, sellele järgnev ükskõik mis täht ja lõpuks ’ssword’.
<pre>grep ^p.ssword /etc/passwd</pre>


=Abi=
=Abi=
Line 86: Line 101:


http://www.cyberciti.biz/faq/howto-use-grep-command-in-linux-unix/
http://www.cyberciti.biz/faq/howto-use-grep-command-in-linux-unix/
https://wiki.itcollege.ee/index.php/Regulaaravaldised
http://enos.itcollege.ee/~jpoial/java/Unix_lyhikonspekt.html
http://veeremaa.tpt.edu.ee/2011/textedit.htm


=Autor=
=Autor=

Revision as of 09:13, 22 September 2017

Grep on üks enimkasutatavaid utiliite, kus saab väga efektiivselt kasutada regulaaravaldisi. Grep on käsu rea teksti otsingu vahend mis oli originaalselt loodud Unixile. Selle nimi tuleneb ed käsust g/r/e/p (global / regular expression / print). Tema eesmärgiks on otsida täpselt seda mida tal palutakse olenevalt käsust. grep, egrep, fgrep, rgrep - väljastab sisendisse antust kõik read, mis sisaldavad otsitud tekstifraasi või regulaaravaldist.

Lihtsamalt öeldes kasutatakse grep'i faili SISU järgi otsimiseks/vaatamiseks - "grep MIDA KUST"

Grep süntaks

grep [-võtmed] regexp [FAIL...]

Võtmed

  • -i, --ignore-case - Otsing ei ole enam tähtede suhtes tõstutundlik.
  • -w, --word-regexp - Otsib täpselt seda sõna, mille otsingusse kirjutad.
  • -c, --count - Loeb ära, mitmes reas sinu otsitav sõna esines.
  • -n, --line-number - Lisab vastele ka rea numbri.
  • -r, --recursive - Uurib ka alamkatalooge.
  • -v, --invert-match - Vastupidine. Väljastab read, mis ei sisalda otsitut.
  • -l, --files-with-matches Näidata ainult nende failide nimed ühekordselt, milles leidub sobivaid ridu
  • -q, --quiet, --silent - tulemust ei väljastata, töötatakse välja ainult lõpetamiskood (0 - leidus, 1 - ei leidunud, 2 - viga)
  • -s, --no-messages Peida tõrketeateid puduvate või mitte loetavate failide kohta.

Näited

Kui tahad otsida sõna "root" failist /etc/passwd, siis kasuta käsku

grep root /etc/passwd

Tulemus: otsib sõna "root" failist /etc/passwd


Grep'i võib sundida ignoreerima suuri ja väikeseid tähti. Seega, kui me otsime sõna, kus on suured ja väikesed tähed (nt. Boo, bOO, BOO jne.), siis kasutame grep'i järel võtit -i

grep -i boo /etc/passwd


Kui sa otsid näiteks sõna "boo", siis tulemusena võid leida ka sõnad fooboo, boo123 vms. Kui aga tahad leida täpselt seda, mille otsingusse kirjutad, siis tuleb kasutada võtit -w

grep -w boo /etc/passwd

Kuid kui otsitavas failis olemas sõna "boo" koos kriipsuga, siis see langeb otsingu parameetrite alla. Näide: "boo-aa". Selleks, et tulemusena saada ainult sõna boo, vaja kasutada võtit -x

grep -x boo /etc/passwd

Kui tahad otsida kataloogist ning ka kõikidest alamkataloogidest, siis pead kasutama grep'i järel võtit -r

grep -r "192.168.1.5" /etc/

Tulemus: otsime fraasi "192.168.1.5" kataloogist /etc/ ning kõikidest selle alamkataloogidest.


Mitme erineva sõna otsimiseks kasutame egrep'i.

egrep "peeter|kala|root" /etc/passwd

Tulemus: ühe käsuga otsime kolme erinevat sõna


Kui huvitab, mitmes erinevas reas otsitav sõna esineb, siis kasutame võtit -c.

grep -c false /etc/passwd


Kui tahame aga näha numbriliselt, mitmendas reas sõna esineb siis kasutame võtit -n

grep -n false /etc/passwd


Võti –v muudab otsingu parameetreid nii, et ainult see üks sõna mida te ei taha eraldatakse nimekirjast.

grep -v peeter /etc/passwd

Tulemus: väljastab kõik read, välja arvatud rea, kus esines sõna "peeter"


Grep'i kasutatakse üsna tihti koos torudega. Mõned näited:

dmesg | egrep "(s|h)d[a-z]"

Tulemus: info kõvaketaste kohta

cat /proc/cpuinfo | grep -i "Model"

Tulemus: väljastab info protsessori (CPU) kohta


Et tulemus eriti hästi silma paistaks, saame väljastada otsitava sõna värviliselt

grep --color peeter /etc/passwd


Otsida võib ka keerulisemaid teksti kombinatsioone. Alljärgnev käsk prindib välja kõik read mis algavad ’p’ tähega, sellele järgnev ükskõik mis täht ja lõpuks ’ssword’.

grep ^p.ssword /etc/passwd

Abi

man grep


Allikad

http://viki.pingviin.org/Grep

http://viki.vkhk.ee/index.php/Grep

http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_04_02.html

http://www.cyberciti.biz/faq/grep-regular-expressions/

http://www.cyberciti.biz/faq/howto-use-grep-command-in-linux-unix/

https://wiki.itcollege.ee/index.php/Regulaaravaldised

http://enos.itcollege.ee/~jpoial/java/Unix_lyhikonspekt.html

http://veeremaa.tpt.edu.ee/2011/textedit.htm

Autor

Petri Hütt