Szöveg feldolgozás

Fórumok

Tudtok olyan szoftverről, ami egy fájlban tárolt címkéket (label) képes keresni egy fájl halmazban (több mappában, almappában)?
Vagy készíteni kell egy programot, esetleg scriptet.

Ck. 100e címke megjelenését kellene végig ellenőrizni ck. 300 fájlban.

Hozzászólások

Én ezt így nem értem, szerintem más sem fogja. Van 300 fájl, eddig tiszta. Ezekben vannak címkék? Ki lehet olvasni egy fájlból a címkék listáját?

>100e címke megjelenését kellene végig ellenőrizni

Mi az, hogy megjelenés? Pontos egyezés? Hasonlóság? Ékezetek számítanak?

Honnan jön a százezer címke, amit ellenőrizni kell?

Mi az, hogy 100e? Százezer? Akkor több a címke mint a fájl. Szinte "Nem a címkét kell ellenőrizni a fájlban, hanem a fájlt a címkében."

Mi az hogy ck.? Cirka?

Na, nem sikerült értelmesen leírni :(

Tehát van egy fájlom, ahol egy sw összes globális változójának neve és egyéb tulajdonsága megjelenik (duplikátumok is vannak). Ez grep pluszt awk, készít egy kulcsszó halmazt.

Van egy másik könyvtár struktúra (mappák, almappák), tele kisebb scriptekkel, amelyek vagy tartalmazzák az előbbi halmazban fellelhető bármely címkét vagy sem.

Nekem egy olyan lista kellene, hogy mely (kisebb script) fájlokban található meg bármely kulcs szó a kulcs szó halmazból.

* Én egy indián vagyok. Minden indián hazudik.

Esetleg valamiféle keresztreferencia-listát szeretnél készíteni?

Mint például amire itt hivatkoznak (+ még a fájlnév is fontos, ahol a hivatkozás előfordul)?

http://progalap.elte.hu/downloads/seged/eTananyag/lecke25_lap1.html#hiv4

"Share what you know. Learn what you don't."

A legszebb az lenne, <full path><file name><some space or tab><global variable>

Kereszt referencia? - végül is nevezhetjük így. A lényeg, hogy mely scriptekben használják és melyik globális változót.

Kaptam néhány grep tippet, így még sosem használtam a grep -pet lehet ilyen egyszerű - mondjuk nem tudom mennyi idő alatt végez, menet közben nem túl szószátyár.

* Én egy indián vagyok. Minden indián hazudik.

Én programot írnék rá: beolvasnám a kulcsszavakat egy keresőfába, majd végigmennénk a forrásokon és minden egyezésre adnék egy sort a kimenetbe. A ráció az benne, hogy így csak egyszer kell végigolvasni a fájlokat, és nem tudok olyan készen használható keresőről, ami egyszerre keres egy ekkora szótárból.

A másik - ésszerűbb - megoldás: az adott nyelvhez megkeresném a legfejlettebb fejlesztőeszközt és az egész kódot belapátolnám ebbe a rendszerbe. Ez pedig tudná a keresztreferenciák keresését és navigációját beindexelve gyorsan. Feltéve, hogy létezik az adott nyelvhez.

Most úgy tűnik, egyszerűbb (nekem) átnézni a scripteket, mivel szintaktikailag, a környezetükben beazonosíthatók. Sajnos nincs egy-két kifejezéssel megfogalmazható szabály :(

* Én egy indián vagyok. Minden indián hazudik.

Nem is kell ide semmilyen szabály. Mondtad, hogy van egy 100 ezres listád, az máris benne van egy fájlban. Duplikátumokat a uniq paranccsal tudod szűrni.

Utána meg:
cd script_dir
grep -r -f 100k_list.txt

Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”

Ha legközelebb kell ilyet csinálnom, újra gondolom. A windows környezet is okoz fejfájást - pl. honnan vegyek awk -ot, amivel a sorokon belülről ki tudom műteni ami kell.

Egyébként a kód végig nézése is tanulságos számomra. Rengeteg olyan dolgot találtam amit később hasznosíthatok - az is lassítja a dolgot hogy sokat jegyzetelek.

* Én egy indián vagyok. Minden indián hazudik.

> ...honnan vegyek awk -ot, amivel a sorokon belülről ki tudom műteni ami kell.

Bocs hogy ismétlem önmagam, de grep -o. Tudom, windows, ha awk nincs akkor grep sincs, de azért jó ha tudatosul, hogy greppel is ki lehet műteni soron belülről, ami kell.

Debian - The "What?!" starts not!
http://nyizsa.blogspot.com

Milyen nyelv és van-e hozzá static code analyzer, pláne olyan, aminél lehet keresni a felépített adathalmazban?

Draft:

find /itt/vannak/a/fajlok -type f -exec grep -f cimkelista {} +