сед команда за замену низа у датотеци

Sed Command Replace String File



Кад год радимо са било којом врстом датотека, уобичајена је пракса да се те датотеке мењају проналажењем и заменом речи. Већина уређивача текста пружа различите методе засноване на графичком интерфејсу за извођење ових измена. Међутим, понекад вам је потребан начин да пронађете и замените речи у датотеци путем терминала. Због тога ћемо у овом чланку проћи кроз метод коришћења команде сед за замену низа у текстуалној датотеци. Такође ћемо осветлити различите сценарије у којима се ова команда може користити.

Напомена: Користићемо Линук Минт 20 за демонстрацију употребе сед команде за замену низа у датотеци. Такође можете користити било који други укус Линука ако желите.







Употреба сед команде:

Сада ћемо вам показати неке врло занимљиве примере за приказивање употребе команде сед у Линуку. Хајде да видимо како ова команда функционише у различитим сценаријима.



Креирање текстуалне датотеке за демонстрацију:

За демонстрацију употребе сед команде, желели бисмо да радимо са текстуалном датотеком. Међутим, можете чак да креирате Басх датотеку или било коју другу датотеку по вашем избору. Друго, ми ћемо креирати датотеку у почетном директоријуму тако да не морамо да наводимо никакве сложене путање док приступамо овој датотеци. За креирање текстуалне датотеке потребно је извршити следеће кораке:



Кликните на икону Управљач датотекама која се налази на траци задатака Линук Минт 20:





Сада креирајте нову текстуалну датотеку у почетном директорију тако што ћете десним тастером миша кликнути било где тамо, а затим изабрати опцију Нови документ из каскадног менија и опцију Испразни документ из подкаскадног менија. Када текстуална датотека буде креирана, дајте јој одговарајуће име. У овом конкретном примеру назвао сам га сед.ткт.



Двапут кликните на ову датотеку да бисте је отворили и укуцајте било који насумични текст у њу као што је приказано на доњој слици. Сачувајте ову текстуалну датотеку притиском на Цтрл +С, а затим је затворите.

Сада покрените терминал у Линук Минт 20 као што је приказано на следећој слици:

Након што сте покренули терминал у Линук Минт 20, можете један по један проћи кроз све доле наведене примере.

Коришћење сед команде за замену свих појављивања дате речи:

Можете користити команду сед за замену свих појављивања дате речи у текстуалној датотеци. Синтакса постизања овог циља је наведена у наставку:

$сед‘С/сед/ФиндВорд/РеплацеВорд/'Филе.ткт

Овде морате заменити ФиндВорд речју коју желите да замените, а РеплацеВорд речју коју желите заменити. Штавише, такође морате да замените датотеку именом датотеке у којој желите да извршите ове замене. У овом сценарију, заменио сам ФиндВорд са сед, а РеплацеВорд са замени. Наше име датотеке је сед.ткт. Такође је приказано на следећој слици:

Успешно извршавање ове команде ће вам показати промене до којих је дошло због покретања ове команде на вашем терминалу:

Коришћењем команде сед за замену н -тог појављивања дате речи у сваком реду:

Горњи сценарио је био најједноставнији сценарио замене, међутим, повремено не желите да замените све појаве речи, већ желите да замените само прву, другу или нту појаву те речи у свим редовима. Да бисте то урадили, можете извршити следећу команду:

$сед‘С/ФиндВорд/РеплацеВорд/нум ’филе.ткт

Овде морате заменити ФиндВорд речју коју желите да замените, а РеплацеВорд речју коју желите заменити. Штавише, такође морате да замените датотеку именом датотеке у којој желите да извршите ове замене. У овом сценарију, заменио сам ФиндВорд реплаце и РеплацеВорд са сед. Наше име датотеке је сед.ткт. Такође, број се односи на појаву или положај речи коју треба заменити. У демонстрираном примеру, желим да заменим прву појаву замене са сед у сваком реду као што је приказано на слици испод:

Успешно извршавање ове команде ће вам показати промене до којих је дошло због покретања ове команде на вашем терминалу:

Коришћењем команде сед за замену дате речи у одређеној линији:

Повремено само желите да замените дату реч у одређеном реду, а не у целом документу. Да бисте то урадили, морате изричито да наведете тај одређени ред у следећој команди:

$сед„ЛинеНум с/ФиндВорд/РеплацеВорд/'Филе.ткт

Овде морате заменити ФиндВорд речју коју желите да замените, а РеплацеВорд речју коју желите заменити. Штавише, такође морате да замените датотеку именом датотеке у којој желите да извршите ове замене. У овом сценарију, заменио сам ФиндВорд сед и РеплацеВорд заменом. Наше име датотеке је сед.ткт. Такође, морате заменити ЛинеНум бројем линије одређене линије у којој желите да извршите замену. У овом примеру смо желели да заменимо сед са замени у 2. реду наше датотеке као што је приказано на следећој слици:

Успјешно извршавање ове наредбе показат ће вам промјене до којих је дошло због извођења ове наредбе на вашем терминалу. Можете лако проверити да су се наведене промене догодиле само у реду 2 наше датотеке, а не у целом тексту.

Закључак:

Кад год осетите потребу да замените било коју реч у датотеци, прва ствар коју морате да урадите је да идентификујете свој посебан захтев, односно да ли желите да замените ту одређену реч у целој датотеци, или желите да замените одређену појаву ту одређену реч или желите да замените ту реч у одређеном реду. Након што сте идентификовали свој одређени сценарио, можете користити ту специфичну методу из примера о којима се говори у овом чланку.