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.
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ó neve01 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.
$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.