Több sor cseréje a `sed` paranccsal

How Replace Multiple Lines Using Sed Command



Néha szükség van egy fájl több sorának kicserélésére bármilyen karakterrel vagy szöveggel. A Linuxban különböző parancsok léteznek egy fájl több sorának helyettesítésére. A `sed` parancs az egyik ilyen típusú feladat elvégzésére. A `sed` teljes formája a Steam Editor, és főleg a szöveg különböző módon történő olvasására és konvertálására szolgál, reguláris kifejezés használatával. Ebben a bemutatóban ismertetjük, hogyan használható ez a parancs egy fájl több sorának helyettesítésére.

Gyakran használt 'sed' csalólap:

A `sed` parancsban használt leggyakrabban használt karaktereket az alábbi táblázat ismerteti.







karakter Célja
nak nek Tartalom hozzáfűzésére szolgál.
b Tartalom elágazásához használják.
c A tartalom megváltoztatására szolgál.
d Egy fájl sorának törlésére szolgál.
D A fájl első sorának törlésére szolgál.
g Régebben a szövegből másolt.
G Hozzáfűzésre szolgál a tartó szövegből.
h Arra szolgál, hogy bemásolja a szövegbe.
H A szöveghez való hozzáfűzésre szolgál.
én Behelyezésre használják.
én A helyettesítő sor nyomtatására szolgál.
n A következő sorra lépéshez használják.
N A következő beviteli sor hozzáfűzésére szolgál.
o Nyomtatásra használják.
P Az első sor nyomtatására szolgál.
mit Leszokásra használják.
Q Azonnal abbahagyják.
r A fájl olvasására szolgál.
R A fájl sorának kiolvasására szolgál.
s Helyettesítésére használják.
t A helyettesítés tesztelésére használják.
T Arra használják, hogy teszteljék a helyettesítést.
ban ben A fájlba írásra szolgál.
BAN BEN Egy sor írására szolgál a fájlba.
x A minták felcserélésére és tartására szolgál.
és Fordításra használják.
Val vel A vonal törlésére szolgál.
'=' A sorszám nyomtatására szolgál.

Cseréljen ki több sort a terminál `sed` parancsával:

Az oktatóanyag ezen része azt mutatja be, hogyan használható a `sed` parancs a sorok cseréjére egy fájlból a terminálról. Hozzon létre egy nevű fájlt sed.txt a következő tartalommal tesztelje ennek a résznek a parancsait.



sed.txt



A sed teljes formája a stream szerkesztő.





Ez egy Unix segédprogram, amely a szöveg más formátumban történő olvasására és konvertálására szolgál.

Lee E. McMahon fejlesztette ki.



Szövegfeldolgozásra használják.

Támogatja a reguláris kifejezéseket.

1. példa: Két egymást követő vonal cseréje

A következő `sed` parancs két egymást követő sort helyettesít egy másik sorral. Itt a -z opciót használjuk arra, hogy az egymást követő sorokat null adatokkal helyettesítsük, mielőtt hozzáadnánk a helyettesítő szöveget. A parancs szerint a 3rdés 4tha fájl sorait a szöveg helyettesíti, 'Ez egy nagyon hasznos eszköz' .

$macskased.txt
$sed -Val vel 's/Lee E. McMahon fejlesztette ki. nSzövegekhez használják
feldolgozás./Nagyon hasznos eszköz.
sed.txt

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

2. példa: Több sor cseréje az egyezés és a globális zászló alapján

A következő 'sed' parancs lecseréli a szóval kezdődő összes sort, 'Azt' a szóval, ' Ezt a sort lecserélik ’.

$macskased.txt
$sed 's/^It.*/Ez a sor le van cserélve/g'sed.txt

A következő kimenet jelenik meg a parancsok futtatása után. Három sor tartalmazza a „ Azt ’Az aktában. Tehát ezeket a sorokat felváltotta a helyettesítő szöveg.

3. példa: Több sor cseréje az egyezés és a következő sor parancs alapján

A következő 'sed' parancs helyettesíti a szót, van 'Szó szerint' volt 'A következő sor paranccsal,' n '.

$macskased.txt
$sed '{n;/is/{s/is/volt/}}'sed.txt

A következő kimenet jelenik meg a parancsok futtatása után. Itt, 'Van' létezik a 2 -benndés 4thfájl sorait, és ezeket a sorokat a szó módosítja 'volt' .

Több sor cseréje a 'sed' parancsfájl létrehozásával:

Az előző példákban a `sed` parancsokat hajtották végre a terminálról. De ez egy szkriptnyelv, és ha a szkript több állítást tartalmaz, akkor jobb, ha létrehoz egy sed fájlt a szkripttel. Hozzon létre egy szöveges fájlt diákok.txt a következő tartalommal, amelyben a `sed` szkript lesz alkalmazva.

diákok.txt

ID: 111045
Név: Robert
Department: CSE
Tétel: 35

ID: 111876
Név: József
Tanszék: BBA
Tétel: 27

ID: 111346
Név: William
Department: CSE
Tétel: 45

ID: 111654
Név: Charles
Osztály: EEE
Tétel: 41

ID: 111346
Név: János
Department: CSE
Tétel: 25

ID: 111746
Név: Tamás
Department: CSE
Tétel: 15

4. példa: Cserélje ki a fájl több sorát a `sed 'parancsfájl használatával

Hozzon létre egy sed nevű fájlt cserélje ki a következő tartalommal a több sor helyett a keresési minta alapján. Itt a szó ' CSE 'A szövegfájlban lesz keresve, és ha az egyezés létezik, akkor újra megkeresi a 35 -ös és a 15 -ös számot.

cserélje ki

/CSE/ {
p; n;
/35/ {
s/35/Négy öt/;
p; d;
}
/tizenöt/ {
s/tizenöt/55/;
p; d;
}
}
p;

Futtassa a következő parancsot a fájl meglévő tartalmának ellenőrzéséhez. A „CSE” négyszer jelent meg a szövegfájlban. A 35 és a 15 két helyen létezik.

$macskadiákok.txt

A következő parancs helyettesíti a több sor tartalmát a sed parancsfájl alapján.

$sed -n -fcsere.használt diákok.txt

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

Következtetés

Ebben az oktatóanyagban különböző módokat mutatunk be több sor vagy tartalom cseréjére a 'sed' paranccsal. Ez az oktatóanyag azt is bemutatja, hogyan lehet végrehajtani a `sed 'parancsfájlt egy sed fájlból. Remélem, hogy ez az oktatóanyag segít az olvasónak, hogy bármely sor több sorát kicserélje a `sed` paranccsal.