Trädvy Permalänk
Medlem
Registrerad
Nov 2016

uniq in linux

Hej!

Hur räknar jag antal unika rader i en fil?
jag har en fil "adress.txt"
med följande innehåll
kalle
kalle
adam
olle
kalle

när jag kör kommandot så ska det returnera talet 3

sort adress.txt | uniq -dc

ska man använda sig av awk?

mvh

Trädvy Permalänk
Medlem
Plats
Linköping
Registrerad
Jun 2007

Vad är det du vill räkna egentligen? Du säger unika rader i filen, men uniq -dc skriver ut antalet gånger som varje icke-unik rad används. Om du faktiskt vill räkna antalet unika rader i filen så kan du använda wc:

sort adress.txt | uniq | wc -l

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Apr 2002
Skrivet av portellozz:

Hej!

Hur räknar jag antal unika rader i en fil?
jag har en fil "adress.txt"
med följande innehåll
kalle
kalle
adam
olle
kalle

när jag kör kommandot så ska det returnera talet 3

sort adress.txt | uniq -dc

ska man använda sig av awk?

mvh

Du vill bara räkna antalet unika rader i din fil? Jag brukar göra så här, finns säkert nåt smidigare sätt.

sort -u <filnamn> | wc -l

`sort -u` sorterar först och skriver sen ut alla unika rader. `wc -l` räknar hur många rader det var.

Edit: För långsam på bollen ser jag. Nåja, bidrar ändå med -u flaggan till sort, så inte helt förgäves

Trädvy Permalänk
Medlem
Registrerad
Nov 2016

@Boulund:

när jag kör kommandot så får jag att antal unika rader är 4 st.

om jag bara kör sort -u så får jag adam, kalle och olla vilket är 3. räknas första raden i min txt fil?

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Apr 2002
Skrivet av portellozz:

@Boulund:

när jag kör kommandot så får jag att antal unika rader är 4 st.

om jag bara kör sort -u så får jag adam, kalle och olla vilket är 3. räknas första raden i min txt fil?

Du råkar inte ha en tom rad i din fil, eller råkar köra wc -l direkt på din fil och inte på strömmen som kommer från sort -u genom pipen?