Pogosto uporabljeni 'sed' Cheat Sheet:
Najpogosteje uporabljeni znaki, uporabljeni v ukazu `sed`, so razloženi v naslednji tabeli.
Znak | Namen |
do | Uporablja se za dodajanje vsebine. |
b | Uporablja se za razvejanje vsebine. |
c | Uporablja se za spreminjanje vsebine. |
d | Uporablja se za brisanje vrstice datoteke. |
D | Uporablja se za brisanje prve vrstice datoteke. |
g | Uporabljalo se je za kopiranje iz besedila. |
G | Uporablja se za dodajanje iz besedila. |
h | Uporablja se za kopiranje v besedilo. |
H | Uporablja se za dodajanje zadrževalnega besedila. |
jaz | Uporablja se za vstavljanje. |
jaz | Uporablja se za tiskanje nadomestne vrstice. |
n | Uporablja se za prehod na naslednjo vrstico. |
N | Uporablja se za dodajanje naslednje vrstice vnosa. |
str | Uporablja se za tiskanje. |
P | Uporablja se za tiskanje prve vrstice. |
kaj | Uporablja se za opustitev. |
Vprašanje | Uporablja se za takojšnjo opustitev. |
r | Uporablja se za branje datoteke. |
R | Uporablja se za branje vrstice iz datoteke. |
s | Uporablja se za zamenjavo. |
t | Uporablja se za testiranje zamenjave. |
T | Uporablja se za testiranje brez zamenjave. |
v | Uporablja se za pisanje v datoteko. |
IN | Uporablja se za zapis vrstice v datoteko. |
x | Uporablja se za zamenjavo vzorcev in držanje. |
in | Uporablja se za prevajanje. |
Z | Uporablja se za čiščenje črte. |
'=' | Uporablja se za tiskanje številke vrstice. |
Zamenjajte več vrstic z ukazom `sed` iz terminala:
V tem delu te vadnice je prikazano, kako lahko z ukazom `sed` zamenjate več vrstic iz datoteke iz terminala. Ustvarite datoteko z imenom sed.txt z naslednjo vsebino preizkusite ukaze tega dela.
sed.txt
Polna oblika sed je urejevalnik tokov.
To je pripomoček Unix, ki se uporablja za branje in pretvorbo besedila v drugačni obliki.
Razvil ga je Lee E. McMahon.
Uporablja se za obdelavo besedila.
Podpira regularne izraze.
Primer-1: Zamenjajte dve zaporedni vrstici
Naslednji ukaz `sed` bo nadomestil dve zaporedni vrstici z drugo. Tu se možnost -z uporablja za zamenjavo zaporednih vrstic z ničelnimi podatki, preden se doda nadomestno besedilo. Po ukazu je 3rdin 4thvrstice datoteke bodo nadomeščene z besedilom, 'To je zelo uporabno orodje' .
$mačkased.txt$sed -Z 's/Razvil ga je Lee E. McMahon. n Uporablja se za besedilo
obdelava./To je zelo uporabno orodje./'sed.txt
Po zagonu ukazov se prikaže naslednji izhod.
Primer 2: Zamenjajte več vrstic glede na ujemanje in globalno zastavo
Naslednji ukaz `sed` bo nadomestil vse vrstice, ki se začnejo z besedo, 'To' z besedo, ' Ta vrstica se nadomesti ‘.
$mačkased.txt$sed 's/^It.*/Ta vrstica je zamenjana/g'sed.txt
Po zagonu ukazov se prikaže naslednji izhod. Tri vrstice vsebujejo besedo ' To ‘V datoteki. Torej so bile te vrstice zamenjane z nadomestnim besedilom.
Primer 3: Zamenjajte več vrstic na podlagi ukaza ujemanja in naslednje vrstice
Naslednji ukaz `sed` bo nadomestil besedo, ' je 'Z besedo,' je bil 'Z ukazom v naslednji vrstici,' n '.
$mačkased.txt$sed '{n;/is/{s/is/was/}}'sed.txt
Po zagonu ukazov se prikaže naslednji izhod. Tukaj, 'Je' obstaja v 2ndin 4thvrstice datoteke, te vrstice pa se spremenijo z besedo 'Bil' .
Zamenjajte več vrstic z ustvarjanjem datoteke skripta `sed`:
V prejšnjih primerih so bili iz terminala izvedeni ukazi `sed`. Ampak to je skriptni jezik, in če skript vsebuje več stavkov, je bolje ustvariti datoteko sed s skriptom. Ustvarite besedilno datoteko z imenom students.txt z naslednjo vsebino, v kateri bo uporabljen skript `sed`.
students.txt
ID: 111045Ime: Robert
Oddelek: CSE
Serija: 35
ID: 111876
Ime: Joseph
Oddelek: BBA
Serija: 27
ID: 111346
Ime: William
Oddelek: CSE
Serija: 45
ID: 111654
Ime: Charles
Oddelek: EEE
Serija: 41
ID: 111346
Ime: John
Oddelek: CSE
Serija: 25
ID: 111746
Ime: Thomas
Oddelek: CSE
Serija: 15
Primer 4: Zamenjajte več vrstic datoteke z datoteko skripta `sed`
Ustvarite datoteko sed z imenom replace.sed z naslednjo vsebino za zamenjavo več vrstic na podlagi vzorca iskanja. Tukaj beseda ' CSE 'Bo iskan v besedilni datoteki, in če ujemanje obstaja, bo znova poiskalo številki 35 in 15. Če v datoteki obstaja drugo ujemanje, bo nadomeščeno s številko 45.
replace.sed
/CSE/ {p; n;
/35/ {
s/35/Štiri, pet/;
p; d;
}
/petnajst/ {
s/petnajst/55/;
p; d;
}
}
p;
Zaženite naslednji ukaz, da preverite obstoječo vsebino datoteke. 'CSE' se je v besedilni datoteki pojavil štirikrat. 35 in 15 obstajata na dveh mestih.
$mačkastudents.txt
Naslednji ukaz bo nadomestil vsebino več vrstic na podlagi skripta sed.
$sed -n -freplace.sed students.txtPo zagonu ukaza se prikaže naslednji izhod.
Zaključek
V tej vadnici so bili prikazani različni načini zamenjave več vrstic ali vsebine več vrstic z ukazom `sed`. V tem vodiču je prikazano tudi, kako se skript `sed` lahko izvede iz datoteke sed. Upam, da bo ta vadnica bralcu pomagala zamenjati več vrstic katere koli datoteke z ukazom `sed`.