Hogyan lehet beilleszteni egy sort a mérkőzés után a `sed 'használatával?

How Insert Line After Match Using Sed



A Linux egyik hasznos és erőteljes parancsa a sed parancs. Ez a parancs különböző típusú feladatok végrehajtására szolgál a Linux rendszerben, például egy adott szöveg vagy sor illesztése, frissítése és törlése az egyezés alapján. A sed paranccsal különböző módon szúrhat be szöveget karakterláncba vagy fájlba.

Ebben a bemutatóban bemutatjuk, hogyan illeszthet be egy sort, miután találatot talált egy karakterláncban vagy egy sorban.







Szúrjon be egy sort a karakterláncba

Új sor illeszthető be bármelyik karakterlánc érték után a sed paranccsal, ha a parancsban definiált minta illeszkedik a karakterlánc bármely részéhez.



A következő példa bemutatja, hogyan lehet új sort hozzáadni a karakterlánc értéke után, ha egy adott karakterlánc létezik a karakterlánc értékében.



1. példa: Illesszen be egy sort a karakterláncba, miután megtalálta a megfelelőt

A következő parancs keresni fogja a karakterláncban, szeretem a programozást, és egy sor szöveget: Szereti a programozást? beillesztésre kerül a karakterlánc után, ha létezik keresési karakterlánc.





Itt a & karakter használható a sor beillesztésére a karakterlánc után.

$kidobta 'Szeretek programozni.' | sed 's / inng / & Szeretsz programozni? /'

A következő kimenet azt mutatja, hogy az inng nem létezik a karakterláncban, és nincs sor a karakterlánc után.




A következő parancs keresni fog. a karakterláncban szeretem a programozást, és létezik a karakterláncban.

$kidobta 'Szeretek programozni.' | sed 's/ing ./& Szeretsz programozni?/'

A következő kimenet azt mutatja, hogy az új sor a karakterlánc után kerül hozzáadásra.

Sor beszúrása a fájlba

Kétféleképpen lehet beszúrni egy sort, miután egy találatot találtunk az alábbiakban említett fájlban. Ha a sed parancsot az -i opció nélkül használja, akkor a fájl tartalma változatlan marad, és a kimenet a fájl tartalmát mutatja a beillesztett új sorral. A -i opciót kell használnia a sed paranccsal, hogy az új sort véglegesen beszúrja a fájlba, ha létezik a fájlban egyezési minta.

A. Az a használata a sed parancsban

Az a használható a sed keresési mintájában egy vagy több sor hozzáfűzéséhez a fájlban azon sor után, ahol a keresési minta egyezik, vagy egy adott sorszám után.

B. Az i használata a sed parancsban

Az i használható a sed parancs keresési mintájában, hogy egy vagy több sort illesszen be egy fájlba a sor előtt, ahol a keresési minta egyezik.

Sor (ok) beszúrása a fájlba a minta alapján:

Hozzon létre egy tabulátorral elválasztott szövegfájlt products.txt a következő tartalommal, hogy bemutassa a fenti zászló használatát a sed parancsban.

products.txt

Azonosító neve

01 Habos tejszín

02 Kakaópor

03 Cukor

04 Tojás

05 Liszt

2. példa: Szúrjon be egy sort egy adott sorszám után az a segítségével

A következő parancsok bemutatják, hogyan lehet hozzáadni egy új sort a products.txt fájl adott sorszáma után, a sed parancsban használt minta alapján.

Itt az első parancs megjeleníti a fájl meglévő tartalmát. A sed parancs hozzáfűzi a b01 Sütőpor szöveget a fájl első két sora után. Az utolsó parancs segítségével ellenőrizheti, hogy a fájl tartalma megváltozott -e vagy sem.

$macskaproducts.txt

$sed „2 a b01 tSütőpor”products.txt

$macskaproducts.txt

A fenti parancs futtatása után a következő kimenet jelenik meg.

3. példa: Illesszen be egy sort az utolsó sor után a segítségével

A következő parancs bemutatja az új sor hozzáfűzésének módját a fájl utolsó sora után. Az első és az utolsó parancs a fájl meglévő tartalmát mutatja a sed parancs végrehajtása előtt és után. A $ szimbólumot a sed parancs mintájában használják a fájl utolsó sorának említésére.

$macskaproducts.txt

$sed '$ a b01 tSütőpor'products.txt

$macskaproducts.txt

A fenti parancs futtatása után a következő kimenet jelenik meg.

4. példa: Illesszen be egy sort a fájlba bárhol a minta illesztése után az a segítségével

A következő sed parancs megmutatja, hogyan lehet új sort hozzáadni a fájl bárhová a megfelelő minta alapján. A sed parancsban használt minta megkeresi az s01 kezdetű sorokat, és hozzáadja az új karakterláncot utána. A fájl negyedik sora az s01 -gyel kezdődik, és az új sor kerül a sor után.

$macskaproducts.txt

$sed '/^s01.*/a b01 tSütőpor'products.txt

$macskaproducts.txt

A parancs futtatása után a következő kimenet jelenik meg.


A következő sed parancs megkeresi a Porral végződő sorokat, és beszúrja az új sort utána. A fájl harmadik sora a Powder szóval végződik. Tehát az új sor beillesztésre kerül a sor után.

$macskaproducts.txt

$sed '/Por $/a b01 tSütőpor'products.txt

$macskaproducts.txt

A fenti parancsok futtatása után a következő kimenet jelenik meg.

5. példa: Illesszen be több sort a megfelelő minta után a segítségével

A következő sed parancs megmutatja, hogyan lehet több sort hozzáadni a fájl tartalmához az egyező minta alapján.

Itt két sor kerül hozzáadásra a harmadik sor után, a minta szerint.

$macskaproducts.txt

$sed '/^[a-c]/a b01 tSütőpor nb02 tSóda'products.txt

$macskaproducts.txt

A fenti parancsok futtatása után a következő kimenet jelenik meg.

6. példa: Illesszen be egy sort a minta illesztése után az I segítségével

$macskaproducts.txt

$sed '/cream/i b01 tSütőpor'products.txt

$macskaproducts.txt

A fenti parancsok futtatása után a következő kimenet jelenik meg.

7. példa: Illesszen be egy sort véglegesen a megfelelő minta után a -i opció segítségével

A következő sed parancs bemutatja, hogyan lehet véglegesen megváltoztatni a fájl tartalmát. Az i opciót a sed paranccsal használjuk, hogy a minta alapján új sort illesszünk a fájlba.

$macskaproducts.txt

$sed -én '/e $/a g01 tGhee'products.txt

$macskaproducts.txt

A fenti parancsok futtatása után a következő kimenet jelenik meg.

Következtetés:

Ebben az oktatóanyagban bemutattuk, hogyan lehet két vagy több sort beilleszteni egy fájlba a sed paranccsal a mintával, hogy segítsen az olvasónak alkalmazni ezt a parancsot a mintákon átmeneti vagy végleges sorok beszúrására.