Bash: Duplikált sorok szűrése

A minap szükségem volt arra, hogy egy szövegfájlból kiszűrjem az ismétlődő sorokat. Ezt Linux shellből könnyen meg lehet oldani


Két Linux segédprogram kell csak ehhez:

  • sort – ezzel lehet rendezni a sorokat a fájlban
  • uniq – ezzel a programmal pedig kiszűrni az ismétlődéseket

A legegyszerűbb ha a sort kimenetét egy pipeba (cső) küldjök, ami a uniq bemenete lesz, majd az egészet beleirányítjuk az ujfajl.txt nevű fájlba. Ha a végén elhagyjuk a > {UJFAJL} részt, akkor a konzolon jelenik meg a kimenet.

sort {FAJL} | uniq > {UJFAJL}

Ez az eredeti fájl (teszt.txt):

Régen
internet
bejegyzés
Régen
kezdők
internet

Mint látható a Régen és az internet szó szerepel kétszer.

Kiadom a parancsot:

sort teszt.txt | uniq

Az eredmény pedig:

bejegyzés
internet
kezdők
Régen

Lehetséges az is, hogy az ismétlődő elemeket teljesen kihagyjuk, ekkor az uniq parancsnak ezt az -u opcióval lehet megmondani:

sort teszt.txt | uniq -u

És ekkor az eredmény:

bejegyzés
kezdők

1 hozzászólás

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöljük.