сед

sed Команда за заместване на низ във файл

sed Команда за заместване на низ във файл
Винаги, когато работим с какъвто и да е файл, е много честа практика да правим модификации на тези файлове, като намираме и заместваме думи. Повечето от текстовите редактори предоставят различни GUI базирани методи за извършване на тези модификации. Понякога обаче се нуждаете от начин да намерите и замените думите в даден файл чрез терминала. Следователно в тази статия ще ви преведем през метода за използване на командата sed за заместване на низ в текстов файл. Също така ще хвърлим светлина върху различните сценарии, в които тази команда може да се използва.

Забележка: Ще използваме Linux Mint 20 за демонстриране на използването на командата sed за замяна на низ във файл. Можете също така да използвате всеки друг вкус на Linux, ако желаете.

Използване на sed Command:

Сега ще ви покажем няколко много интересни примера за изобразяване на използването на командата sed в Linux. Нека видим как тази команда работи в различни сценарии.

Създаване на текстов файл за демонстрация:

За да демонстрираме използването на командата sed, бихме искали да работим с текстов файл. Можете обаче дори да създадете Bash файл или друг файл по ваш избор. На второ място, ще създадем файла в директорията Home, така че да не се налага да посочваме сложни пътеки, докато осъществяваме достъп до този файл. За създаване на текстов файл трябва да се изпълнят следните стъпки:

Щракнете върху иконата на файловия мениджър, разположена в лентата на задачите на Linux Mint 20:

Сега създайте нов текстов файл в директорията Home, като щракнете с десния бутон на мишката някъде там и след това изберете опцията New Document от каскадното меню и опцията Empty document от подкаскадното меню. След като текстовият файл е създаден, дайте му подходящо име. За този конкретен пример го нарекох като sed.текст.

Щракнете двукратно върху този файл, за да го отворите и въведете произволен текст в него, както е показано на изображението по-долу. Запазете този текстов файл, като натиснете Ctrl + S и след това го затворете.

Сега стартирайте терминала в Linux Mint 20, както е показано на следното изображение:

След като стартирате терминала в Linux Mint 20, можете да преминете през всички примери, споменати по-долу, един по един.

Използване на командата sed за замяна на всички случаи на дадена дума:

Можете да използвате командата sed за замяна на всички случаи на дадена дума в текстов файл. Синтаксисът за постигане на тази цел е споменат по-долу:

$ sed 's / sed / FindWord / ReplaceWord /' файл.текст

Тук трябва да замените FindWord с думата, която искате да замените, и ReplaceWord с думата, която трябва да бъде заменена. Освен това трябва да замените „файл“ с името на файла, където искате да извършите тези замествания. В този сценарий замених FindWord със sed и ReplaceWord със заместител. Името на нашия файл беше sed.текст. Той е показан и на следното изображение:

Успешното изпълнение на тази команда ще ви покаже промените, настъпили поради изпълнението на тази команда на вашия терминал:

Използване на командата sed за замяна на n-тото появяване на дадена дума във всеки ред:

Горният сценарий беше най-простият сценарий за замяна, но понякога не искате да замените всички появявания на дума, а искате да замените само първото, второто или n-тото появяване на тази дума във всички редове. За да направите това, можете да изпълните следната команда:

$ sed 's / FindWord / ReplaceWord / num' файл.текст

Тук трябва да замените FindWord с думата, която искате да замените, и ReplaceWord с думата, която трябва да бъде заменена. Освен това трябва да замените „файл“ с името на файла, където искате да извършите тези замествания. В този сценарий замених FindWord replace и ReplaceWord със sed. Името на нашия файл беше sed.текст. Също така, num се отнася до появата или позицията на думата, която трябва да бъде заменена. В демонстрирания пример искам да заменя първата поява на replace със sed във всеки ред, както е показано на изображението по-долу:

Успешното изпълнение на тази команда ще ви покаже промените, настъпили поради изпълнението на тази команда на вашия терминал:

Използване на командата sed за замяна на дадена дума в определен ред:

Понякога искате да замените дадена дума само в определен ред, а не в целия документ. За да направите това, изрично трябва да посочите конкретния номер на ред в следната команда:

$ sed 'LineNum s / FindWord / ReplaceWord /' файл.текст

Тук трябва да замените FindWord с думата, която искате да замените, и ReplaceWord с думата, която трябва да бъде заменена. Освен това трябва да замените „файл“ с името на файла, където искате да извършите тези замествания. В този сценарий съм заменил FindWord sed и ReplaceWord с replace. Името на нашия файл беше sed.текст. Също така трябва да замените LineNum с номера на реда на конкретния ред, в който искате да направите замяната. В този пример искахме да заменим sed с replace в ред номер 2 на нашия файл, както е показано на следващото изображение:

Успешното изпълнение на тази команда ще ви покаже промените, настъпили поради изпълнението на тази команда на вашия терминал. Можете лесно да проверите, че споменатите промени са настъпили само на ред номер 2 от нашия файл, а не в целия текст.

Заключение:

Винаги, когато почувствате необходимостта от замяна на която и да е дума във файл, първото нещо, което трябва да направите, е да идентифицирате конкретното си изискване i.д. дали искате да замените тази конкретна дума в целия файл, или искате да замените конкретна поява на тази конкретна дума, или искате да замените тази дума в определен ред. След като идентифицирате конкретния си сценарий, можете да използвате този специфичен метод от примерите, обсъдени в тази статия.

Как да инсталирате и играете Doom на Linux
Въведение в Doom Серията Doom възниква през 90-те години след пускането на оригиналния Doom. Това беше незабавен хит и от този момент нататък серията ...
Vulkan за потребители на Linux
С всяко ново поколение графични карти виждаме, че разработчиците на игри преместват границите на графичната вярност и се приближават една крачка до фо...
OpenTTD срещу Simutrans
Създаването на собствена транспортна симулация може да бъде забавно, релаксиращо и изключително примамливо. Ето защо трябва да сте сигурни, че изпробв...