Kā nomainīt vairākas rindas, izmantojot komandu 'sed'

How Replace Multiple Lines Using Sed Command



Dažreiz ir jāaizstāj vairākas faila rindas ar kādu konkrētu rakstzīmi vai tekstu. Linux pastāv dažādas komandas, lai aizstātu vairākas faila rindas. Komanda `sed` ir viena no tām, lai veiktu šāda veida uzdevumus. Pilna 'sed' forma ir Steam Editor, un to galvenokārt izmanto teksta lasīšanai un konvertēšanai dažādos veidos, izmantojot regulāru izteiksmi. Šajā apmācībā ir izskaidrots, kā šo komandu var izmantot, lai dažādos veidos aizstātu vairākas faila rindas.

Parasti izmantotā 'sed' apkrāptu lapa:

Visbiežāk lietotās rakstzīmes, kas tiek izmantotas komandā 'sed', ir izskaidrotas nākamajā tabulā.







Raksturs Mērķis
uz To izmanto satura pievienošanai.
b To izmanto satura sazarošanai.
c To izmanto, lai mainītu saturu.
d To izmanto faila rindas dzēšanai.
D To izmanto, lai izdzēstu faila pirmo rindu.
g To izmantoja, lai kopētu no turēšanas teksta.
G To izmanto, lai pievienotu no turēšanas teksta.
h To izmanto, lai kopētu turēšanas tekstu.
H To izmanto, lai pievienotu turēšanas tekstam.
i To izmanto ievietošanai.
Es To izmanto, lai drukātu aizstājējrindu.
n To izmanto, lai pārietu uz nākamo rindu.
N To izmanto, lai pievienotu nākamo ievades rindu.
lpp To izmanto drukāšanai.
Lpp To izmanto pirmās rindas drukāšanai.
kas To izmanto, lai atmestu.
Q To izmanto, lai nekavējoties atmestos.
r To izmanto, lai lasītu failu.
R To izmanto, lai nolasītu rindu no faila.
s To izmanto, lai aizstātu.
t To izmanto, lai pārbaudītu aizstāšanu.
T To izmanto, lai pārbaudītu, vai nav aizstāšanas.
iekšā To izmanto, lai rakstītu failā.
IN To izmanto, lai ierakstītu rindiņu failā.
x To izmanto, lai apmainītu modeļus un turētu.
un To izmanto tulkošanai.
Ar To izmanto, lai notīrītu līniju.
‘=’ To izmanto, lai drukātu rindas numuru.

Nomainiet vairākas rindas, izmantojot termināļa komandu 'sed':

Šajā apmācības daļā ir parādīts, kā komandu 'sed' var izmantot, lai no termināļa aizstātu vairākas rindas no faila. Izveidojiet failu ar nosaukumu sed.txt ar šādu saturu pārbaudiet šīs daļas komandas.



sed.txt



Pilna sed forma ir straumes redaktors.





Tā ir Unix utilīta, ko izmanto teksta lasīšanai un konvertēšanai citā formātā.

To izstrādāja Lī E. Makmahons.



To izmanto teksta apstrādei.

Tas atbalsta regulāras izteiksmes.

1. piemērs: nomainiet divas secīgas līnijas

Šī komanda 'sed' aizstās divas rindas pēc kārtas ar citu rindu. Šeit opciju -z izmanto, lai aizstātu secīgās rindas ar nulles datiem pirms aizstāšanas teksta pievienošanas. Saskaņā ar pavēli 3rdun 4tūkstfaila rindas tiks aizstātas ar tekstu, 'Tas ir ļoti noderīgs rīks' .

$kaķissed.txt
$sed -Ar 's/To izstrādāja Lī E. Makmahons. nTo izmanto tekstam
apstrāde./Tas ir ļoti noderīgs rīks.
sed.txt

Pēc komandu palaišanas parādīsies šāda izvade.

2. piemērs. Aizstājiet vairākas rindas, pamatojoties uz atbilstību un globālo karogu

Šī komanda 'sed' aizstās visas rindas, kas sākas ar vārdu, ‘Tā’ ar vārdu: ' Šī līnija tiek aizstāta ‘.

$kaķissed.txt
$sed 's/^It.*/Šī rinda tiek aizstāta/g'sed.txt

Pēc komandu palaišanas parādīsies šāda izvade. Trīs rindas satur vārdu ' 'Failā. Tātad šīs rindas ir aizstātas ar aizstāšanas tekstu.

3. piemērs. Aizstājiet vairākas rindas, pamatojoties uz atbilstības un nākamās rindas komandu

Vārdu aizstās šāda komanda 'sed' ir 'Ar vārdu,' bija 'Ar nākamās rindas komandu' n '.

$kaķissed.txt
$sed '{n;/ir/{s/ir/bija/}}'sed.txt

Pēc komandu palaišanas parādīsies šāda izvade. Šeit, ‘Ir’ pastāv 2ndun 4tūkstfaila rindas, un šīs rindas tiek mainītas ar vārdu 'Bija' .

Aizstājiet vairākas rindas, izveidojot skripta failu 'sed':

Iepriekšējos piemēros komandas 'sed' tika izpildītas no termināļa. Bet tā ir skriptu valoda, un, ja skripts satur vairākus apgalvojumus, labāk ir izveidot sed failu ar skriptu. Izveidojiet teksta failu ar nosaukumu student.txt ar šādu saturu, kurā tiks lietots skripts 'sed'.

student.txt

ID: 111045
Vārds: Roberts
Nodaļa: CSE
Partija: 35

ID: 111876
Vārds: Jāzeps
Nodaļa: BBA
Partija: 27

ID: 111346
Vārds: Viljams
Nodaļa: CSE
Partija: 45

ID: 111654
Vārds: Čārlzs
Nodaļa: EEE
Partija: 41

ID: 111346
Vārds: Jānis
Nodaļa: CSE
Partija: 25

ID: 111746
Vārds: Tomass
Nodaļa: CSE
Partija: 15

4. piemērs. Aizstājiet vairākas faila rindas, izmantojot skripta failu 'sed'

Izveidojiet sed failu ar nosaukumu aizstāt.senas ar šādu saturu, lai aizstātu vairākas rindas, pamatojoties uz meklēšanas modeli. Šeit vārds ' PMP “Tiks meklēts teksta failā, un, ja atbilstība pastāv, tā atkal meklēs skaitļus 35 un 15. Ja failā ir otrā atbilstība, to aizstās ar skaitli 45.

aizstāt.senas

/PMP/ {
p; n;
/35/ {
s/35/Četri, pieci/;
p; d;
}
/piecpadsmit/ {
s/piecpadsmit/55/;
p; d;
}
}
p;

Palaidiet šo komandu, lai pārbaudītu faila esošo saturu. “CSE” teksta failā parādījās četras reizes. 35 un 15 pastāv divās vietās.

$kaķisstudent.txt

Šī komanda aizstās vairāku rindu saturu, pamatojoties uz sed skriptu.

$sed -n -faizstāt.lietotie studenti.txt

Pēc komandas palaišanas parādīsies šāda izvade.

Secinājums

Šajā apmācībā ir parādīti dažādi veidi, kā aizstāt vairākas rindas vai vairāku rindu saturu, izmantojot komandu 'sed'. Šajā apmācībā ir parādīts arī tas, kā skriptu 'sed' var izpildīt no sed faila. Es ceru, ka šī apmācība palīdzēs lasītājam aizstāt vairākas jebkura faila rindas, izmantojot komandu 'sed'.