Sed
apzīmē straumes redaktoru. Tas ir komandrindas redaktors operētājsistēmai Linux. Populārs sed lietojums ir paredzēts failu(-u) rediģēšanai kā daļa no automatizācijas skripta operētājsistēmā Linux, jo parasti redaktoriem ir nepieciešama aktīva lietotāja ievade, un tie nevar rediģēt failus ārpus redaktora ekrāniem. Sed visbiežāk izmanto, lai atrastu un aizstātu no komandrindas.
Šāda veida teksta redaktoru var arī klasificēt kā neinteraktīvu teksta redaktoru.
Apskatīsim dažas izplatītākās iespējas failu rediģēšanai, izmantojot Sed. Kā piemēru ņemsim šādu failu:
$: cat test.txt Ātrs brūns suns pārlēca pāri slinkajam kaķim. Linux operētājsistēma. Mežā pie manas vietas ir kaķis, kā arī vilki.
Meklēt un aizstāt
Lai failā meklētu virkni un aizstātu to ar citu virkni, palaidiet:
sed -i "s/cat/fox/g" test.txt
Lūk, -i
karodziņš uzdod sed ierakstīt izmaiņas failā. Bez šī karoga sed
tikai parādīs failu ar mainīto virkni.
Pēdiņās mums ir s/kaķis/lapsa/g
. The s
ir paredzēta meklēšanas un aizstāšanas komandai sed
. Tad mums ir jāmeklē virkne, kas ir kaķis
. Pēc tam virkne, ar ko to aizstāt, t.i., lapsa
. Visbeidzot, mums ir izvēles iespēja g
, kas norāda sed
lai aizstātu visus gadījumus visās faila rindās. Bez g
, sed aizstās tikai pirmo reizi kaķis
katrā rindā.
Šeit var izmantot arī Regex.
sed -i "s/f[a-z]*\./cat\./g"
Ievietot
Lai ievietotu tekstu pirms rindas ar atbilstošu virkni, izmantojiet:
sed -i "/cat/i Sākt:" test.txt
Šeit, kaķis
ir meklētā virkne un Sākt:
ir virkne, kas jāievada pirms rindas, kurā tiek atrasta meklētā virkne.
Līdzīgi, lai ievietotu tekstu aiz rindas, izmantojiet:
sed -i "/fox/a End." test.txt
Dzēst
Lai izdzēstu rindu, kurā ir apakšvirkne, izmantojiet:
sed -i "/Linux/d" test.txt
Lai izdzēstu rindu ar rindas numuru, piem. pirmajā rindā izmantojiet:
sed -i '1d' test.txt
Vairāku funkciju apvienošana
Lai apvienotu vairākas funkcijas, piem. meklēt un aizstāt, dzēst, vienā komandā, -e
karogu var izmantot.
sed -i -e "s/fox/cat/g" -e '2d' test.txt
? Priekā!