Linux alatt szövegfájl bizonyos sorainak megszámolása, shell-script vagy parancs?
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.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Nem állítottam, hogy ne lenne jó, ne felelne meg.
Azt gondoltam, hogy - mivel Linux alatt nagyon sokminden megoldható villámgyorsan parancssorral - van valamilyen jó megoldás.
Megírtam a programot, sima szekvenciális fájlolvasás, karakterlánc-ellenőrzés, változónővelés és kész.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
Az "alma" után következő sorban mi van - ezt vizsgálja a program - és abból mennyi van.
Például végeredmény lehetne ez:
piros alma: 490 zöld alma: 879 birsalma: 110 nyári alma: 950 Jonatán alma: 678
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Kinek hogy, egyéni preferenciák kérdése. Az ilyen jellegű adatfeldolgozó feladatoknál 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. Az is izgalmas feladat, sőt, kifejezetten jó agytorna, de ha a gyorsaságról van szó, akkor szeretem a bevált módszereimet alkalmazni.
Az egyszerűség meg nem egzakt dolog. Attól, hogy valami rövidebb, még egyáltalán nem biztos, hogy átláthatóbb.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
"Azt megszoktam, hogy sok dolog jóval gyorsabban és egyszerűbben oldható meg, mintha programot írnék rá."
Jaj neeee
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
Az awk egy olyan programozási nyelv, amit szöveges állományok feldolgozására terveztek. Egy tipikus awk programot egy interpreter olvas be és hajt végre. A szkript végrehajtása során a feldolgozott szöveges állományat másféle kimenetté formálja át.
A nyelv tömörsége miatt néhány program olyan rövid, hogy parancssori paraméterként is beadható az interpreter részére.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!