Egy konkrét kérés nyomán volt szükségem néhány gyors szöveg manipulálásra, amelyhez a sed (stream editor) segítségét választottam. A kérés egy utónév kereső és kalkulátor lefejesztése volt, amelyhez szükségem volt természetesen az adatbázisra. Az összes, Magyar Tudományos Akadémia által jóváhagyott nevet nyilvánosan, PDF formátumban le lehet tölteni a honlapjukról (khm.... mint az közismert).
A Zathura nevű PDF olvasó játszva kimásolta a neveket egy szöveges fájlba; mindössze annyi volt zavaró, hogy belemásolta az oldalszámot és a kezdőbetűt jelölő fejezetcímeket (A, B, C stb) is. Mivel kétbetűs névről nem tudok (a Leó, Lea, Mia és ezek a legrövidebbek), ezért azokat a sorokat töröltem a fájlból, amelyek összesen 1 vagy 2 karakterből állnak (így a kettősbetű jelölőket is kizártam *):
cat tmp.txt | sed '/^.$/d' | sed '/^..$/d' > lanynevek.txt
Szükségem volt még a gyakran kiosztott nevekre - a szoftver bármilyen okos egyezést meg tud találni, kivéve azt, hogy a szülőknek az utóbbi időben most éppen mely nevek tetszettek. A www.nevnaptar.eu oldalon fent vannak a népszerű nevek. Gyorsan kijelöltem, ctrl+Cecil, ctrl+Vazul, de sajnos a szövegfájlba már így kerültek be a nevek (mindenféle egyéb szemét is jött velük, ráadásul csupa nagybetűsek voltak):
1.
JÁZMIN
1 559 334
2.
ANNA
1 255 659
3.
HANNA
1 207 251
A legpraktikusabbnak azt tartottam, ha a számozott sorokat kihagyom, ezért csak azokat a sorokat írattam ki, amelyekben betűk szerepelnek (ugye nevek esetén viszonylag ritkán bukkannak fel számok, hacsak nem valakit T1b0r-nak hívnak :-)). Persze szórakozhattam volna mindenféle 'n;d;n;n;d;n;d' parancsokkal is... :)
sed -n '/^[A-Z]*$/p' gyakorinevek.txt > gyn_temp.txt
A nagybetűs nevek ettől még megmaradtak. Kapitalizáltam őket úgy, hogy az első betűre match-eltem és azt változatlanul kiírattam, a többit pedig a \L direktívával kisbetűssé alakítottam.
sed 's/^\([A-Z]\)\([A-Z]*\)$/\1\L\2/' gyn_temp.txt > gyakorinevek.txt
Itt ugye a visszahivatkozásokat hívtam segítségül.
Ha összegezzük a fentieket, lényegében 3 sorból előállt két adatbázis, amiben később tudtam keresgélni. Természetesen ezeket a sort paranccsal még rendeztem a felhasználás előtt.
Zisz iz de póver ov kommandlájn interfész.
*Benne maradt a Dzs, mint utólag kiderült... :)