Nemrégiben fedeztem fel nagy örömmel a comm parancsot, amivel két rendezett fájlt lehet jól összehasonlítani (és pl. a közös elemeket kiszűrni). Meglepetésemre azonban nem úgy működött, ahogy vártam.
A http://web2.osb.hu/z/comm könyvtárban van két fájl: a és b.
Ha ezekre ráeresztem a
comm -1 -2 a b
parancsot (akár felcserélt a-val, b-vel), üres kimenetet kapok. Ellenben a
cat a|xargs -iQ grep "^"Q"$" b
(akár felcserélt a-val, b-vel) kapok megfelelő számokat (18-at). Mi lehet az oka annak, hogy a comm nem tudja ugyanezt?
A fő kérdés egyébként az, hogy ha van néhány fájlom (egy-egy halmaz elemeit képviselő számokkal egymás alatt), akkor hogyan tudom a legfájdalommentesebben kideríteni a metszeteket jelentő részhalmazok elemeit?
- 827 megtekintés
Hozzászólások
Nálam így működik a te fájljaiddal:
$ sort a > a.sorted
$ sort b > b.sorted
$ comm -12 a.sorted b.sorted
1137
1184
1233
13000
13141
13145
13201
15335
15361
1652
1742
3078
3194
40193
40264
40300
40325
40799
$ comm -12 a.sorted b.sorted | wc -l
18
- A hozzászóláshoz be kell jelentkezni
Köszi. Azt tévesztettem el, hogy azt gondoltam, hogy a numerikus rendezettség elég.
:-)
- A hozzászóláshoz be kell jelentkezni