Megjegyzés: A Linux Mint 20-at fogjuk bemutatni a sed parancs használatáról a fájlban lévő karakterlánc helyettesítésére. Használhatja a Linux bármely más ízét is, ha akarja.
A sed parancs használata:
Most néhány nagyon érdekes példát mutatunk be a sed parancs Linuxban történő használatának bemutatására. Nézzük meg, hogyan működik ez a parancs a különböző forgatókönyvekben.
Szöveges fájl létrehozása bemutatásra:
A sed parancs használatának bemutatásához szöveges fájllal szeretnénk dolgozni. Létrehozhat azonban akár egy Bash fájlt, vagy bármilyen más fájlt, amelyet választott. Másodszor, létrehozzuk a fájlt a Főkönyvtárban, hogy ne kelljen megadnunk összetett útvonalakat a fájl elérése közben. Szöveges fájl létrehozásához a következő lépéseket kell végrehajtani:
Kattintson a Linux Mint 20 tálcán található Fájlkezelő ikonra:
Most hozzon létre egy új szövegfájlt a Főkönyvtárban: kattintson jobb gombbal bárhová, majd válassza az Új dokumentum lehetőséget a lépcsőzetes menüből, és az Üres dokumentum opciót az alkaszkád menüből. A szövegfájl létrehozása után adjon megfelelő nevet. Ehhez a konkrét példához sed-nek neveztem el.txt.
Kattintson duplán a fájlra a megnyitásához, és írja be a véletlenszerű szöveget az alábbi képen látható módon. Mentse el ezt a szöveges fájlt a Ctrl + S megnyomásával, majd zárja be.
Most indítsa el a terminált a Linux Mint 20-ban, a következő képen látható módon:
Miután elindította a terminált a Linux Mint 20-ban, egyenként áttekintheti az alábbiakban említett összes példát.
A sed parancs használata egy adott szó minden előfordulásának helyettesítésére:
A sed paranccsal helyettesítheti az adott szó összes előfordulását egy szövegfájlban. A cél elérésének szintaxisa az alábbiakban szerepel:
$ sed 's / sed / FindWord / ReplaceWord /' fájl.txtItt ki kell cserélnie a FindWord szót a cserélni kívánt szóra, és a ReplaceWord szót a kicserélendő szóra. Ezenkívül le kell cserélnie a „fájl” nevet annak a fájlnak a nevével, ahová ezeket a cseréket be akarja hajtani. Ebben a forgatókönyvben a FindWord-ot lecseréltem sed-re, és a ReplaceWord-t lecseréltem. A fájlunk neve sed.txt. A következő képen is látható:
A parancs sikeres végrehajtása megmutatja azokat a változásokat, amelyek a parancs futtatása miatt történtek a terminálon:
A sed paranccsal helyettesítheti az adott szó minden sorban előforduló n-edik előfordulását:
A fenti forgatókönyv volt a legegyszerűbb helyettesítési szcenárió, azonban időnként nem egy szó minden előfordulását akarja lecserélni, hanem csak a szó első, második vagy n-edik előfordulását kívánja cserélni az összes sorban. Ehhez hajtsa végre a következő parancsot:
$ sed 's / FindWord / ReplaceWord / num' fájl.txtItt ki kell cserélnie a FindWord szót a cserélni kívánt szóra, és a ReplaceWord szót a cserélendő szóra. Ezenkívül le kell cserélnie a „fájl” nevet annak a fájlnak a nevével, ahová ezeket a cseréket be akarja hajtani. Ebben a forgatókönyvben kicseréltem a FindWord cseréjét és a ReplaceWord szót. A fájlunk neve sed.txt. A num utal a cserélendő szó előfordulására vagy helyzetére is. A bemutatott példában minden egyes sorban a sed helyettesítését szeretném lecserélni, az alábbi képen látható módon:
A parancs sikeres végrehajtása megmutatja azokat a változásokat, amelyek a parancs futtatása miatt történtek a terminálon:
A sed parancs használata egy adott szó helyettesítésére egy adott sorban:
Időnként csak egy adott szót akar helyettesíteni egy adott sorban, és nem az egész dokumentumban. Ehhez kifejezetten meg kell adnia az adott sorszámot a következő parancsban:
$ sed 'LineNum s / FindWord / ReplaceWord /' fájl.txtItt ki kell cserélnie a FindWord szót a cserélni kívánt szóra, és a ReplaceWord szót a kicserélendő szóra. Ezenkívül le kell cserélnie a „fájl” nevet annak a fájlnak a nevével, ahová ezeket a cseréket be akarja hajtani. Ebben a forgatókönyvben a FindWord sed-et és a ReplaceWord-t kicseréltem. A fájlunk neve sed.txt. Ezenkívül ki kell cserélnie a LineNum-ot annak a sornak a sorszámával, amelyben a cserét meg akarja hajtani. Ebben a példában a sedet helyettesíteni akartuk a fájlunk 2. sorában, a következő képen látható módon:
A parancs sikeres végrehajtása megmutatja azokat a változásokat, amelyek a parancs futtatása miatt történtek a terminálon. Könnyen ellenőrizheti, hogy az említett változások csak a fájlunk 2. sorában történtek-e, és nem a teljes szövegben.
Következtetés:
Amikor úgy érzi, hogy egy fájl bármely szavát ki kell cserélnie, az első dolog, amit meg kell tennie, az az, hogy meghatározza az adott követelményt i.e. helyettesíteni kívánja-e az adott szót az egész fájlban, vagy az adott szó egy meghatározott előfordulását, vagy pedig egy adott sorban kívánja cserélni ezt a szót. Miután meghatározta az adott forgatókönyvet, használhatja az adott módszert a cikkben tárgyalt példákból.