sed Parancs egy karakterlánc cseréjére egy fájlban

Sed Command Replace String File



Amikor bármilyen fájllal dolgozunk, nagyon gyakori gyakorlat, hogy szavak keresésével és cseréjével módosítjuk ezeket a fájlokat. A legtöbb szövegszerkesztő különböző GUI -alapú módszereket kínál ezen módosítások végrehajtásához. Időnként azonban szüksége van arra, hogy a terminálon keresztül megtalálja és kicserélje a szavakat egy fájlban. Ezért ebben a cikkben végigvezetjük azon módszeren, hogy hogyan használjuk a sed parancsot egy szövegfájl karakterláncának cseréjére. Ezenkívül megvilágítjuk a különböző forgatókönyveket, amelyekben ez a parancs használható.

Megjegyzés: A Linux Mint 20 -at fogjuk használni annak bemutatására, hogy a sed parancs hogyan helyettesít egy karakterláncot egy fájlban. Ha szeretné, a Linux bármely más változatát is használhatja.







A sed parancs használata:

Most mutatunk néhány nagyon érdekes példát a sed parancs Linuxon történő használatának bemutatására. Lássuk, hogyan működik ez a parancs különböző esetekben.



Bemutató szövegfájl létrehozása:

A sed parancs használatának bemutatására egy szövegfájllal szeretnénk dolgozni. Létrehozhat azonban egy Bash -fájlt vagy bármely más választott fájlt. Másodszor, létrehozzuk a fájlt a Home könyvtárban, hogy ne kelljen összetett útvonalakat megadnunk a fájl elérésekor. Szöveges fájl létrehozásához a következő lépéseket kell végrehajtani:



Kattintson a Fájlkezelő ikonra a Linux Mint 20 tálcán:





Most hozzon létre egy új szöveges fájlt a Kezdőlap könyvtárban, kattintson jobb gombbal bárhová, majd válassza a lépcsőzetes menü Új dokumentum opcióját és az al-kaszkád menü Dokumentum ürítése opcióját. A szövegfájl létrehozása után adjon megfelelő nevet. Ebben a konkrét példában sed.txt -nek neveztem el.



Kattintson duplán a fájlra a megnyitásához, és írjon be bármilyen véletlenszerű szöveget az alábbi képen látható módon. Mentse el ezt a szövegfájlt a Ctrl +S billentyűkombináció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 végigjárhatja az alábbi példákat.

A sed parancs használata az adott szó összes előfordulásának cseréjére:

A sed paranccsal helyettesítheti egy adott szó összes előfordulását egy szövegfájlban. A cél elérésének szintaxisa az alábbiakban található:

$sed’S/sed/FindWord/ReplaceWord/’Fájl.txt

Itt le kell cserélnie a FindWord szót a cserélni kívánt szóval, a ReplaceWord szót pedig a lecserélendő szóval. Ezenkívül le kell cserélnie a fájlt annak a fájlnak a nevével, ahol ezeket a cseréket végrehajtani kívánja. Ebben a forgatókönyvben a FindWord -ot lecseréltem sed -re, a ReplaceWord -ot pedig a cserére. Fájlnevünk sed.txt volt. Az alábbi képen is látható:

A parancs sikeres végrehajtása megmutatja azokat a változásokat, amelyek a parancs terminálon történő futtatása miatt történtek:

A sed parancs használata az adott szó n -edik előfordulásának lecserélésére minden sorban:

A fenti forgatókönyv volt a legegyszerűbb helyettesítési forgatókönyv, azonban időnként nem szeretné lecserélni egy szó összes előfordulását, inkább csak a szó első, második vagy n. Előfordulását szeretné lecserélni minden sorban. Ehhez a következő parancsot hajthatja végre:

$sed’S/FindWord/ReplaceWord/szám ’file.txt

Itt le kell cserélnie a FindWord szót a cserélni kívánt szóval, a ReplaceWord szót pedig a lecserélendő szóval. Ezenkívül le kell cserélnie a fájlt annak a fájlnak a nevével, ahol ezeket a cseréket végrehajtani kívánja. Ebben az esetben lecseréltem a FindWord cseréjét és a ReplaceWord -ot a sed -re. Fájlnevünk sed.txt volt. Ezenkívül a num a kicserélendő szó előfordulására vagy helyzetére utal. A bemutatott példában minden sorban le akarom cserélni a cserét első alkalommal seddel, az alábbi képen látható módon:

A parancs sikeres végrehajtása megmutatja azokat a változásokat, amelyek a parancs terminálon történő futtatása miatt történtek:

A sed parancs használata adott szó cseréjéhez egy adott sorban:

Időnként csak egy adott szót szeretne kicserélni egy adott sorban, és nem az egész dokumentumban. Ehhez kifejezetten meg kell adnia az adott sor számát a következő parancsban:

$sed'LineNum s/FindWord/ReplaceWord/’Fájl.txt

Itt le kell cserélnie a FindWord szót a cserélni kívánt szóval, a ReplaceWord szót pedig a lecserélendő szóval. Ezenkívül le kell cserélnie a fájlt annak a fájlnak a nevével, ahol ezeket a cseréket végrehajtani kívánja. Ebben az esetben lecseréltem a FindWord sed és a ReplaceWord elemeket a cserére. Fájlnevünk sed.txt volt. Ezenkívül a LineNum -ot le kell cserélnie annak a sornak a sorszámával, amelyben a cserét végrehajtani kívánja. Ebben a példában a sed -et le akartuk cserélni 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 terminálon történő futtatása miatt történtek. Könnyen ellenőrizheti, hogy az említett változtatások csak a fájlunk 2. sorában történtek -e meg, és nem a teljes szövegben.

Következtetés:

Amikor úgy érzi, hogy ki kell cserélnie egy szót a fájlban, az első dolog, amit meg kell tennie, hogy meghatározza az adott követelményt, azaz azt, hogy le szeretné -e cserélni ezt a szót az egész fájlban, vagy le szeretné cserélni a az adott szót, vagy le szeretné cserélni ezt a szót egy adott sorban. Miután azonosította az adott forgatókönyvet, használhatja ezt a módszert a cikkben tárgyalt példákból.