Kā lietot Sed operētājsistēmā Linux

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ā!