Kezdőoldal » Számítástechnika » Programozás » Linux alatt szövegfájl bizonyo...

Linux alatt szövegfájl bizonyos sorainak megszámolása, shell-script vagy parancs?

Figyelt kérdés

Linux alatt milyen parancsok segítségével számolhatóak meg pl. egy szövegfájl bizonyos sorai?

A következő a helyzet, van egy szövegfájl, amelynek van egy sora, és a rá következő sor az érdekes, amelynek több értéke is lehet.

Példa:


alma

piros alma


alma

zöld alma


alma

birsalma


alma

nyári alma


alma

Jonatán alma


Stb.

Tehát megtalálja hogy "alma" és az ez utáni sorban előforduló stringeket megszámlálja és a végén kiírja: melyik stringből mennyi fordult elő.

Akál shell script vagy bármi érdekelne. "sed", "awk" meg grep össze-pipe-olása is.

Programot tudnék rá írni, de az érdekelne: van -e beépített megoldása erre a Linuxnak.



jan. 7. 09:44
1 2
 11/15 anonim ***** válasza:
55%

awk-val megcsinálhatod, hogy ha matchel, akkor "skippelje" a sort és a következöt printelje ki: awk '/^alma$/{getline; print}'

Van egy uniq nevü parancs, aminek ha adsz egy -c kapcsolót, akkor megszámolja, hogy miböl mennyi van. Ahhoz, hogy az uniq müködjöj, sortolni is kell, szerencsére erre ott a sort nevü parancs:


~/tmp$ cat alma.txt

alma

piros alma

alma

zöld alma

alma

birsalma

alma

nyári alma

alma

Jonatán alma

~/tmp$ cat alma.txt | awk '/^alma$/{getline; print}' | sort | uniq -c

1 birsalma

1 Jonatán alma

1 nyári alma

1 piros alma

1 zöld alma

jan. 8. 21:41
Hasznos számodra ez a válasz?
 12/15 anonim ***** válasza:
77%

Kb ennyi:

grep -A 1 "^alma$" fájl | grep -v "^alma$" | uniq -c


A fájl helyére a fájlnevet írd

jan. 9. 11:52
Hasznos számodra ez a válasz?
 13/15 anonim ***** válasza:
77%

bocs, a sort kimaradt:


grep -A 1 "^alma$" fájl | grep -v "^alma$" | sort | uniq -c

jan. 9. 12:04
Hasznos számodra ez a válasz?
 14/15 A kérdező kommentje:
Nagyon köszönöm, pontosan ilyen megoldásokra gondoltam. :)
jan. 9. 17:12
 15/15 anonim ***** válasza:

#1: mert ez nem egy tipikusan programozási feladat

#7: "inkább írok 10 perc alatt egy Perl skriptet, mint hogy fél napig agyaljak azon, hogy hogyan lehet 1-2 sorban, parancssorból megírni" - a #12-es választ kb 10 mp alatt írtam.

jan. 9. 17:50
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!