Ubuntun käyttö > Ohjelmointi, palvelimet ja muu edistyneempi käyttö
Millä ohjelmalla voi hakea boolean-haulla ?
(1/3) > >>
kamara:
Haluaisin hakea tiedostosta monipuolisesti boolean-haulla.

Esim. tekstitiedostoista haluaisin ulos tekstitiedostojen nimet, joissa esiintyy äänitiedosto teksti tai sekä audio että file-teksti ...

--- Koodia: ---hae.sh 'äänitiedosto|audio&file'
--- Koodi päättyy ---

Taipuuko awk siihen ?

Edit - Mikäli ei löydy, niin onko jollakin muullakin siihen tarvetta ?
kamara:
No, on sen verran lyhyt ohjelma, että julkaisen sen täällä:

Parannetun ohjelman voisi tehdä C/C++:llä tai Rust:lla saisi ratkaisun tehtyä aikaan ainakin O(n) soveltaen https://en.wikipedia.org/wiki/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm mutten jaksa vielä säätää niin paljoa.

Jos tulee aikakriittiseksi, niin sitten pitää laittaa kädet rasvaan ja kääntää se tehokkaammalle kielelle.

Bonuksena ohjelma hakee zip-tiedostoistakin, joten ohjelman avulla voi hakea myös libreOffice:n tiedostoista. Rekursiivisuutta en ole jaksanut tehdä, mutta ohjelma on mielestäni kätevä jo tällaisenaan.

Valitettavasti search ei tue säännöllisiä lauseita, mutta mielestäni on helpommin lähestyttävä kuin säännölliset lauseet.

Tehokkuutta voisi myös lisätä säikeillä, mutta sitäkään en tee ennen kuin sille löytyy tarvetta. Onneksi se on kuitenkin säikeistettävissä.

Ohjelma siis tulostaa osajoukon annetuista tiedostonnimistä. Tiedostojen nimet voi antaa joko parametrina tai putkitettuna.

Tässä esimerkki käytöstä:

--- Koodia: ---./search 'Ohje'  ~/Asiakirjat/*.odt

--- Koodi päättyy ---
Sama koodi toisin esitettynä:

--- Koodia: ---ls ~/Asiakirjat/*.odt|./search 'Ohje'

--- Koodi päättyy ---

kamara:
Ohjelma oletuksena huutelee aika paljon, joten sitä saattaa kannattaa käyttää ohjaamalla error-virta nulliin...


--- Koodia: ---ls ~/Asiakirjat/*.odt|./search 'Ohje' 2>/dev/null

--- Koodi päättyy ---
kamara:
Ohjelma siis tulostaa PATTERN:n täyttävien asiakirjojen tiedostonimet. Sillä tavalla muistuttaa find-ohjelmaa.
Jere Sumell:
Toi lineaarinen hakukomplesisuus kyllä todella hyvä, mitä luin tuon alkujaan Wikipedia-yhteisön tekstin linkkaamasi.

Kyllä joku ihan varmasti jo ohjelmoinut Rustilla tai C++/C -kielillä, mitä 1969/1970 -luvulta tuo algoritmin esitys.

Rust mielenkiintoinen kieli, mitä joku aika takaperin täälläkin otin kantaa vai kysyinkö ittse tuon roskien keruun GC:n muistinhallinnasta, ja käytin siihen yhden illan aikaa, niin tuo Rust voisi olla mielekäs käydä dokumentaatiota läpi, mitä siinä ei ole roskienkeruu-järjestelmää, ja silti sillä voi luoda sovelluksia alhaisen tason resurssien laitteisiin. Uutena tuli mitä kävin aamupäivällä jonkin verran tuota "book" -läpi "Getting Started", tuo omistaja "Ownership".

Voisiko tuota jakamaasi algoritmiä jotenkin soveltaa mitä pistän tähän liitteeksi DVD ja Blu-Ray -kokoelmani mitä Winkkarissa olen arkiston käyttämällä Eric's Movie Database -freewarea, mitä siinä tulee seuraavat tietueet lajittelu-vaihtoehtoina ohjelmaan on sisällytetty:

Numero
Nimi
Lainassa
Kesto
Maa
Laji
IMDB pisteet
IMDB TOP 250
Omat pisteet
TomatoMeter score
Sijainti
Lisäyspäivä
Last played

Mitä tästä saisi vielä tekstitiedostosta louhittua irti soveltamalla tuota pythonilla ohjelmoimaasi hakuohjelmaa, mitä tässä nyt ei ole yllä listattuna.



Navigaatio
Viestien etusivu
Seuraava sivu

Siirry pois tekstitilasta