Kirjoittaja Aihe: Ohjelmaa joka etsii tiedostojen sisältä  (Luettu 3599 kertaa)

Owdy

  • Käyttäjä
  • Viestejä: 1954
    • Profiili
Ohjelmaa joka etsii tiedostojen sisältä
« : 27.11.05 - klo:15.41 »
Onko sellaista linuksille?   Ts Etsii vaikka tiettyä merkkijonoa tekstitiedostojen sisältä?

LittleLion

  • Käyttäjä
  • Viestejä: 1232
    • Profiili
    • http://koti.mbnet.fi/littleli/
Re: Ohjelmaa joka etsii tiedostojen sisältä
« Vastaus #1 : 27.11.05 - klo:17.08 »
Onko sellaista linuksille?   Ts Etsii vaikka tiettyä merkkijonoa tekstitiedostojen sisältä?

grep 'mitä etsitään' tekstitiedosto.txt

Ninnnu

  • Käyttäjä
  • Viestejä: 247
  • LinuCaster
    • Profiili
Re: Ohjelmaa joka etsii tiedostojen sisältä
« Vastaus #2 : 27.11.05 - klo:17.17 »
Itse käytän seuraavaa yhdistelmää (ajaa saman asian):
Koodia: [Valitse]
cat foobar.txt | grep etsittävä merkkijono

Owdy

  • Käyttäjä
  • Viestejä: 1954
    • Profiili
Re: Ohjelmaa joka etsii tiedostojen sisältä
« Vastaus #3 : 27.11.05 - klo:17.43 »
Entäs kansiosta useista tiedostoista?

janne

  • Käyttäjä
  • Viestejä: 5150
    • Profiili
Re: Ohjelmaa joka etsii tiedostojen sisältä
« Vastaus #4 : 27.11.05 - klo:18.49 »
Entäs kansiosta useista tiedostoista?

Koodia: [Valitse]
$ grep <mitä etsitään> hakemisto/*
tai hakemistossa:

Koodia: [Valitse]
$ grep <mitä etsitään> *
tai, no ehkä on helpompaa katsoa itse:
Koodia: [Valitse]
$ man grep
Janne

Owdy

  • Käyttäjä
  • Viestejä: 1954
    • Profiili
Re: Ohjelmaa joka etsii tiedostojen sisältä
« Vastaus #5 : 27.11.05 - klo:19.34 »
Hehhe, huikeeta. Ja Winukassa pitää ostaa kymmenien dollarien ohjelma tätä varten ;D

Kiiitos!

Komentorivi ei näemmä ymmärrä välilyöntejä hakemiston nimissä. Mikä siihen pitää laittaa välimerkiksi? Esim jos kansion nimi on 'Minun hakemisto'.

LittleLion

  • Käyttäjä
  • Viestejä: 1232
    • Profiili
    • http://koti.mbnet.fi/littleli/
Re: Ohjelmaa joka etsii tiedostojen sisältä
« Vastaus #6 : 27.11.05 - klo:19.46 »
Hehhe, huikeeta. Ja Winukassa pitää ostaa kymmenien dollarien ohjelma tätä varten ;D

Kiiitos!

Komentorivi ei näemmä ymmärrä välilyöntejä hakemiston nimissä. Mikä siihen pitää laittaa välimerkiksi? Esim jos kansion nimi on 'Minun hakemisto'.

Minun\ hakemisto

Tosin helpoin on, että kirjoitat vaikka: Minun ja painat tabulaattori niin se täydentää rivin ja jos vaihtoehtoja on monta niin painat pari kertaa sitä tabua niin se näyttää ne vaihtoehdot.

janne

  • Käyttäjä
  • Viestejä: 5150
    • Profiili
Re: Ohjelmaa joka etsii tiedostojen sisältä
« Vastaus #7 : 27.11.05 - klo:21.11 »
Itse käytän seuraavaa yhdistelmää (ajaa saman asian):
Koodia: [Valitse]
cat foobar.txt | grep etsittävä merkkijono

joku sanoo piankin, että useless use of cat ;)
http://sial.org/code/shell/tips/useless-cat/

vaikka tämä ei nyt tähän viestiin liitykään, niin kehutaan nyt vielä, että grep osaa tietysti etsiä merkkijonoa myös rekursiivisesti, case insensitiivisesti, näyttää etsityn tekstin rivinumeron jne. (kun minä vielä osaisin kertoa noista ominaisuuksista suomeksi...).
Janne

_Pete_

  • Käyttäjä
  • Viestejä: 1836
  • Fufufuuffuuu
    • Profiili
Re: Ohjelmaa joka etsii tiedostojen sisältä
« Vastaus #8 : 28.11.05 - klo:08.54 »
Entäs kansiosta useista tiedostoista?

Koodia: [Valitse]
$ grep <mitä etsitään> hakemisto/*
tai hakemistossa:

Koodia: [Valitse]
$ grep <mitä etsitään> *
tai, no ehkä on helpompaa katsoa itse:
Koodia: [Valitse]
$ man grep

Kun etsii monista tiedostoista kannattaa käyttää -H vipua, joka matchaavan rivin löytyessä tulostaa myös tiedoston nimen, josta matchi löytyy eli:

Koodia: [Valitse]
$ grep -H <mitä etsitään> *