Како заменити више редова помоћу команде `сед`

How Replace Multiple Lines Using Sed Command



Понекад је потребно заменити више редова датотеке било којим посебним знаком или текстом. У Линуку постоје различите команде за замену више редова датотеке. команда `сед` једна је од њих за обављање ове врсте задатака. Пуни облик `сед` -а је Стеам Едитор и углавном се користи за читање и претварање текста на различите начине коришћењем регуларног израза. Како се ова команда може користити за замену више редова датотеке на различите начине објашњено је у овом водичу.

Уобичајено коришћени `сед` Цхеат Схеет:

Најчешће коришћени знакови који се користе у наредби `сед` објашњени су у следећој табели.







Цхарацтер Сврха
до Користи се за додавање садржаја.
б Користи се за гранање садржаја.
ц Користи се за промену садржаја.
д Користи се за брисање линије датотеке.
Д. Користи се за брисање првог реда датотеке.
г Користило се за преписивање из државног текста.
Г. Користи се за додавање из главног текста.
х Користи се за копирање у задржани текст.
Х. Користи се за додавање задрженог текста.
и Користи се за уметање.
И Користи се за штампање заменске линије.
н Користи се за прелазак на следећи ред.
Н Користи се за додавање следеће линије за унос.
п Користи се за штампање.
П Користи се за штампање првог реда.
Шта Користи се за одустајање.
П Користи се за тренутно одустајање.
р Користи се за читање датотеке.
Р Користи се за читање линије из датотеке.
с Користи се за замену.
т Користи се за тестирање замене.
Т Користи се за тестирање да нема замене.
у Користи се за писање у датотеку.
ИН Користи се за писање линије у датотеку.
Икс Користи се за замену шаблона и држање.
и Користи се за превођење.
Витх Користи се за брисање линије.
‘=’ Користи се за штампање броја линије.

Замените више редова помоћу команде `сед` са терминала:

Како се команда `сед` може користити за замену више редова из датотеке са терминала приказано је у овом делу овог водича. Направите датотеку под називом сед.ткт са следећим садржајем тестирајте команде овог дела.



сед.ткт



Пуни облик сед -а је едитор потока.





То је Уник помоћни програм који се користи за читање и претварање текста у други формат.

Развио га је Лее Е. МцМахон.



Користи се за обраду текста.

Подржава регуларне изразе.

Пример-1: Замените две узастопне линије

Следећа команда `сед` ће заменити две узастопне линије другом линијом. Овде се опција -з користи за замену узастопних редова нулл подацима пре додавања заменског текста. Према команди, 3рди 4тхредови датотеке биће замењени текстом, „То је веома користан алат“ .

$мачкасед.ткт
$сед -Са 'с/Развио га је Лее Е. МцМахон. нКористи се за текст
обрада./То је веома користан алат./'
сед.ткт

Следећи излаз ће се појавити након покретања наредби.

Пример 2: Замените више редова на основу подударања и глобалне заставице

Следећа команда `сед` замениће све редове који почињу речју, 'То' речју, „ Ова линија је замењена ‘.

$мачкасед.ткт
$сед 'с/^Ит.*/Ова линија је замењена/г'сед.ткт

Следећи излаз ће се појавити након покретања наредби. Три реда садрже реч „ То ‘У датотеци. Дакле, ове редове је заменио заменски текст.

Пример 3: Замените више редова на основу команде подударања и наредне линије

Следећа команда `сед` ће заменити реч, ' је „Речју“, био „Са наредбом наредног реда,„ н “.

$мачкасед.ткт
$сед '{н;/ис/{с/ис/вас/}}'сед.ткт

Следећи излаз ће се појавити након покретања наредби. Овде, 'Је' постоји у 2нди 4тхредове датотеке, а ти редови су измењени речју 'био' .

Замените више редова креирањем `сед` скрипт датотеке:

У претходним примерима, команде `сед` су извршаване са терминала. Али то је скриптни језик, а ако скрипта садржи више исказа, боље је креирати сед датотеку са скриптом. Направите текстуалну датотеку под називом студентс.ткт са следећим садржајем у коме ће се применити `сед` скрипта.

студентс.ткт

ИД: 111045
Име: Роберт
Одељење: ЦСЕ
Серија: 35

ИД: 111876
Име: Јосип
Одељење: ББА
Серија: 27

ИД: 111346
Име: Виллиам
Одељење: ЦСЕ
Серија: 45

ИД: 111654
Име: Цхарлес
Одељење: ЕЕЕ
Серија: 41

ИД: 111346
Име: Јохн
Одељење: ЦСЕ
Серија: 25

ИД: 111746
Име: Тхомас
Одељење: ЦСЕ
Серија: 15

Пример-4: Замените више редова датотеке користећи `сед` скрипт датотеку

Направите сед датотеку са именом заменити.сед са следећим садржајем да замени више редова на основу обрасца претраживања. Овде је реч „ ЦСЕ „Тражиће се у текстуалној датотеци, а ако подударање постоји, поново ће претраживати бројеве 35 и 15. Ако друго подударање постоји у датотеци, биће замењено бројем 45.

заменити.сед

/ЦСЕ/ {
п; н;
/35/ {
с/35/Четири, пет/;
п; д;
}
/петнаест/ {
с/петнаест/55/;
п; д;
}
}
п;

Покрените следећу команду да бисте проверили постојећи садржај датотеке. „ЦСЕ“ се појавио четири пута у текстуалној датотеци. 35 и 15 постоје на два места.

$мачкастудентс.ткт

Следећа команда ће заменити садржај више редова заснованих на сед скрипти.

$сед заменити.сед студентс.ткт

Следећи излаз ће се појавити након покретања наредбе.

Закључак

У овом водичу приказани су различити начини замене више редова или садржаја више редова помоћу команде `сед`. Како се `сед` скрипта може извршити из сед датотеке приказано је и у овом водичу. Надам се да ће овај водич помоћи читатељу да замени више редова било које датотеке помоћу команде `сед`.