Difference between revisions of "Grep kasutamine"

From ICO wiki
Line 1: Line 1:
'''grep''', '''egrep''', '''fgrep''', '''rgrep''' - väljastab sisendisse antust kõik read, mis sisaldavad otsitut 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"
Line 5: Line 5:
 
=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 mida 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 - Väljastab read, mis ei sisalda otsitut.
  
  
  
 
=Näited=
 
=Näited=
Kui tahad otsida sõna root failist /etc/passwd siis kasuta käsku
+
Kui tahad otsida sõna "root" failist /etc/passwd, siis kasuta käsku
  
 
<pre>grep root /etc/passwd</pre>
 
<pre>grep root /etc/passwd</pre>
  
'''Tulemus:''' otsib sõna root failist /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 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
  
 
<pre>grep -i boo /etc/passwd</pre>
 
<pre>grep -i boo /etc/passwd</pre>
  
  
Kui sa otsid näiteks sõna boo siis tulemusena võid leida ka sõnu fooboo, boo123 vms. Kui aga tahad leida täpselt seda, mille otsingusse kirjutad siis tuleb kasutada võtit -w
+
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
  
 
<pre>grep -w boo /etc/passwd</pre>
 
<pre>grep -w boo /etc/passwd</pre>
Line 32: Line 32:
  
  
Kui tahad otsida kataloogist ning ka kõikidest alamkataloogidest siis peame 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
  
 
<pre>grep -r "192.168.1.5" /etc/</pre>
 
<pre>grep -r "192.168.1.5" /etc/</pre>
  
'''Tulemus:''' otsime 192.168.1.5 kataloogist /etc/ ning kõikidest alamkataloogidest samuti
+
'''Tulemus:''' otsime fraasi "192.168.1.5" kataloogist /etc/ ning kõikidest selle alamkataloogidest.
  
  
Line 46: Line 46:
  
  
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. Kui tahame aga näha numbriliselt, mitmendas reas sõna esineb siis kasutame võtit -n
  
 
<pre>grep -c false /etc/passwd</pre>
 
<pre>grep -c false /etc/passwd</pre>
Line 53: Line 53:
  
 
<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"
  
  
Grep'i kasutatakse üsna tihti koos torudega. Toon välja mõned näited:
+
Grep'i kasutatakse üsna tihti koos torudega. Mõned näited:
 
<pre>dmesg | egrep "(s|h)d[a-z]"</pre>
 
<pre>dmesg | egrep "(s|h)d[a-z]"</pre>
  
Line 67: Line 67:
  
  
Et eriti hästi tulemus silma paistaks saame väljastada otsitava sõna värviliselt
+
Et tulemus eriti hästi silma paistaks, saame väljastada otsitava sõna värviliselt
  
 
<pre>grep --color peeter /etc/passwd</pre>
 
<pre>grep --color peeter /etc/passwd</pre>

Revision as of 23:26, 11 December 2012

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"

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 - Väljastab read, mis ei sisalda otsitut.


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


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. Kui tahame aga näha numbriliselt, mitmendas reas sõna esineb siis kasutame võtit -n

grep -c false /etc/passwd
grep -n false /etc/passwd


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


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/

Autor

Petri Hütt