sed

Az utolsó előfordulás helyettesítése a „sed” használatával

Az utolsó előfordulás helyettesítése a „sed” használatával
A "sed" parancsot a Linux különféle típusú szöveges műveletekhez használja, például beszúráshoz, törléshez, cseréhez stb. Különböző típusú helyettesítő feladatok hajthatók végre a „sed” paranccsal. Bármely helyettesítő feladat elvégezhető a keresett szöveg vagy minta alapján. A keresett szöveg vagy minta többször előfordulhat a karakterláncban vagy egy fájlban, ahol a keresést végzik. Ez az oktatóanyag bemutatja, hogyan lehet lecserélni a keresett szöveg vagy minta legutóbbi előfordulását.

Cserélje le a szöveg utolsó előfordulását egy karakterláncban:

Ez a szakasz bemutatja, hogy a keresési minta legutóbbi előfordulása egy karakterláncban hogyan pótolható a 'sed' paranccsal.

1. példa: Cserélje le a szó utolsó előfordulását a minta alapján

A következő „sed” parancs keresni fogja a szót 'PHP' a karakterláncban, és cserélje le a kereső szót a szóra 'AngularJS' ha a szó létezik a karakterláncban.

$ echo "Java PHP Bash Python JavaScript PERL PHP Laravel" |
sed / s (.* \) PHP / \ 1AngularJS / '

A következő kimenet jelenik meg a parancs futtatása után. Itt a szó 'PHP' kétszer létezik a karakterláncban, és az utolsó előfordulást a " SzögletesJS".

2. példa: Cserélje le a számjegyalapú minta utolsó előfordulását

A következő „sed” parancs a karakterlánc bármely számjegyét megkeresi, és az utolsó számjegyet a számmal helyettesíti 9.

$ echo "Az első számláló értéke 2. A második számláló értéke 4 "|
sed / s (.* \) [0-9]) * / \ 19 / '

A következő kimenet jelenik meg a parancs futtatása után. Itt a számjegy kétszer jelenik meg a karakterláncban, és az utolsó számjegy, 4, helyébe a szám lépett 9.

3. példa: Cserélje ki a szám utolsó számjegyét a minta alapján

A következő „sed” paranccsal a karakterláncban szereplő utolsó számjegy helyébe a kettős nulla (0 0) érték lép.

$ echo "A termék ára 500 USD."| sed 's / \ (.* \) [0-9] / \ 100 / '

A következő kimenet jelenik meg a parancs futtatása után. Itt, 500 létezik a karakterlánc értékében. Tehát a csere parancs szerint az utolsó nulla 500 helyébe két dupla nulla lépett, a kicserélt érték pedig 5000.

4. példa: Cserélje le a szó utolsó előfordulását egy másik szóra

A következő „sed” parancs keresni fogja a szót 'Június' a karakterláncban, és cserélje le a szó utolsó előfordulását az értékre, 'Lehet'.

$ printf "% s \ n" jan. febr. jún. ápr. jún. dec. | tr '\ n' "|
sed 's / \ (.* \) Június / \ 1Május / '| tr "'\ n'

A következő kimenet jelenik meg a parancs futtatása után. Itt a szó 'Június' kétszer létezik a karakterláncban, és az utolsó előfordulást a szó váltotta fel 'Lehet'.

Cserélje le a szöveg utolsó előfordulását a fájlban:

Hozzon létre egy szöveges fájlt Értékesítés.txt a következő tartalommal tesztelheti az oktatóanyag ezen részében használt „sed” parancsot a minta alapján a szöveg utolsó előfordulásának helyettesítésére.

Értékesítés.txt

Hónap Év Összege
2018. január 200 000 USD
2019 március: 300000 USD
2019. április 150000 USD
2020 március: 350000 USD
2019. május 210000 USD
2020. január 240000 USD

5. példa: Cserélje le a szó utolsó előfordulását egy másik szóra

A következő „sed” parancs keresni fogja a szót 'Január'a fájlban, és cserélje le a szó utolsó előfordulását a szóra, 'Július".

$ cat Sales.txt
$ sed '$ s / január / július /' Értékesítés.txt

A parancsok futtatása után a következő kimenet jelenik meg. A szó 'Január' kétszer jelenik meg a fájlban. Az utolsó előfordulás a 7-benth a fájl sorát a szó váltotta fel 'Július'a kimenetben.

6. példa: Cserélje le egy szám utolsó előfordulását egy másik számra

„tac” parancs a fájl tartalmának megfordítására szolgál. „tac” parancs a 'sed' paranccsal a következő parancsban használható a „2019'szóval, „2017”.

$ cat Sales.txt
$ tac Értékesítés.txt | sed '0, / 2019 / s / 2019/2017 /' | tac

A parancsok futtatása után a következő kimenet jelenik meg. Itt az évérték, „2019'háromszor jelenik meg a fájlban. Az első, „tac” parancs megfordította a fájl tartalmát, és a kimenetet a „sed” parancs az első előfordulásának helyettesítésére '2019' amely a fájl utolsó előfordulása évérték szerint, „2017”. Csere után a kimenetet elküldtük a „tac” parancs a kimenet újbóli megfordításához. Ilyen módon a2019"helyébe az érték lépett, „2017".

7. példa: Cseréljen le egy sort a szó utolsó előfordulása alapján

A következő „sed” parancs a sort helyettesíti egy tabulátorral (\ t) elválasztott szöveggel, ahol a sor a karakterlánccal kezdődik „Mar” az aktában utoljára.

$ cat Sales.txt
$ tac Értékesítés.txt | sed '0, / ^ márc.* / s / ^ márc.* / Július \ t \ t2018 \ t $ 400000 / '| tac

A parancsok futtatása után a következő kimenet jelenik meg. A fájl két sora a karakterlánccal kezdődik, „Mar”, és ennek a karakterláncnak az utolsó előfordulása a 5th vonal. Az első „tac” parancsot használták a fájl tartalmának megfordítására és a kimenetet a 'sed ' parancs. "sed'a parancs lecserélte a sort egy szövegre,'2018. július 400 000 dollár'ahol a kereső karakterlánc először megtalálta. A kimenet a 'sed'parancsot elküldtük a „tac” parancs újra a fájl fő tartalmát jelentő kimenet visszafordításához.

Következtetés:

A „sed” paranccsal a karakterlánc bármely részét vagy egy sorát különböző módon lehet helyettesíteni reguláris kifejezésminták használatával. Ez az oktatóanyag bemutatta a keresési szöveg legutóbbi előfordulásának helyét egy karakterláncban vagy fájlban több „sed” parancs használatával. Ebben az oktatóanyagban bemutatásra került az is, hogy a 'tac' parancs hogyan használható a 'sed' paranccsal a keresett szöveg utolsó előfordulásának helyettesítésére. De az itt használt összes parancs ideiglenesen létrehozza a kimenetet. A fájl tartalmának végleges megváltoztatásához a minta alapján az '-i' opciót kell használnia a 'sed' paranccsal.

Az egér mozgásának vezérlése és kezelése több monitor között a Windows 10 rendszerben
Dual Display Mouse Manager lehetővé teszi az egér mozgásának vezérlését és konfigurálását több monitor között, lassítva annak mozgását a határ közeléb...
A WinMouse segítségével testre szabhatja és javíthatja az egérmutató mozgását a Windows PC-n
Ha szeretné javítani az egérmutató alapértelmezett funkcióit, használjon ingyenes programokat WinMouse. További funkciókat kínál, amelyek segítenek ab...
Az egér bal oldali gombja nem működik a Windows 10 rendszeren
Ha dedikált egeret használ laptopjával vagy asztali számítógépével, de a az egér bal gombja nem működik a Windows 10/8/7 rendszeren valamilyen oknál f...