Két fájl különbsége

Sziasztok

van egy shell scriptem ami generál két fájlt, a két fájt tartalma :

elsőnek:

uid
243
244
245
246
247
248
250
.
.
.

a másodiknak:

105881
10573
10568
10567
10549
105472
10540
.
.
.

hogy tudnám a legegyszerűbben a tartalmukat összehasonlítani, pár sorban, (több) ciklus nélkül?

Ez valamiért nem a megfelelő eredményre vezet (persze mert soronként dolgozná fel a fájlokat):

/usr/bin/diff $NOCACHEFILE $VISITEDIDFILE | $GREP "<" | $GREP -v "uid"> $NOCACHEDIDFILE

Köszi

Hozzászólások

Egyaltalan milyen kimenet kellene? Ha rosszul tevedek, akkor arra volna szukseged, hogy az elso file-ban letarolt uid-ek (user-ek?) milyen file-okat, konyvtarakat stb. latogattak? Vagy csak csupaszon kellene a kimenet "<" nelkul?

Szerk.: Vagy eppen arra volna szukseg, hogy egy adott user mit nezegetett? Soronkent? Valami statisztikat szeretnel kesziteni?

---
Egy jol feltett kerdes mar egy fel valasz...

Igen, egyfajta statisztika lenne, a két fájlom már megvan a fenti formában és azt kell kiszednem ami az egyikben nincs, de a másikban megvan.

Nem userid-k (de a megoldáshoz mindegy, hogy milyen számok), hanem index.php?id=xxx (egyik fájl tartalma, a leglátogatottabb oldal id-k), a másik fájlban pedig az el-cachel-t oldalak id-je, ezen kettőt kellene összehasonlítanom ciklus meg ilyen-olyan rendezés nélkül, bash script-ből.

Tehát apache access.log feldolgozást és összehasonlítást akarok összerakni és megkeresni azon id-ket amik nincsenek ideiglenesen elmentve. Eleje megvan, a bash-ból összehasonlításnál akadtam meg:-(

Az awstats sajnos nem id szerint rendezi (ill. meg sem jeleníti az id-s oldalakat, hanem szétbontja az oldalon lévő képek,frame-k stb.szerint) a leglátogatottabb oldalakat.

A kimenet egy sima szöveg fájlban kell nekem.

Lehet, hogy rosszul ertem, de nem sort kell neked?

De, az is van benne, kell az összegyűjtéshez, de a két fájl összehasonlításához már nem, sajnos a diff program soronként ellenőrzi.

Azaz

Első fájl :
1 sorban: 1
2 sorban: 2
3 sorban: 3
4 sorban: 4
és így tovább,a másikban
1 sorban: 4
2 sorban: 5
3 sorban: 6
és így tovább, akkor a diff (mivel soronként dolgozik, minden sorban eltérést talál), nekem az kellene, ha a 4-es szerepel mind a két fájlban akkor csak a különbséget szeretném fájlban megkapni így sorokban: 1 2 3 5 6 és így tovább....

Ezek, amiket ide felírtál, hogyan jöttek ki?

Biztos agyalágyult vagyok, de valahogy nekem nem egészen világos mit is akarsz.

Vegyük az első fájl első sorát: 243 és a második fájl első sorát:105881. Ebből most mit akarsz eredményül kapni? Mivel nincs közös részük ezért lehetne a 243 vagy a 1058 (vagy 105881?). Vagy esetleg a 2431058?

Ez rendesen egy rejtveny is lehetne lassan... :D

---
Egy jol feltett kerdes mar egy fel valasz...

for i in `cat 1.txt`; do grep -q ^$i 2.txt || echo $i; done

az 1.txt amit keresel a 2.txt meg a már létező fájlok azt hiszem kell még egy lezáró a grep végére, hogy a 2 és 22 elkülöníthető legyen.

--
Elméletileg nincs különbség elmélet és gyakorlat között. Gyakorlatilag van.