Научете Linux

Замяна на низ в Bash

Замяна на низ в Bash

Bash е UNIX-съвместим команден процес, чиято основна задача е да манипулира низове, проведени в среда на черупка. Понякога програмистите са призовани да работят върху различни файлове. Те могат да добавят, изтриват и заменят части или целия файл, за да отговарят на тяхната работа. Това изисква знанието за заместване на низ в bash. Съхранението на данни може да бъде временно или постоянно, в зависимост от естеството на данните. Файловият низ е от съществено значение при замяна на съдържанието на файла.

Замяна на низ в Bash

сед е жизненоважен и е полезен за помощ при замяна на низове във файл с bash скриптове. Редакторът на низове може да се използва по различни начини за замяна на съдържанието на файла в bash. Алтернативен, но звуков редактор на низове е awk, който може да се включи при замяна на стойност на низа от файл с помощта на bash. Тази статия ще покаже с помощта на примери как съдържанието на файла може да бъде заменено в bash. Имайте предвид, че познанията в шаблоните на регулярни изрази също могат да бъдат от голяма стойност при замяна на низ в bash.

Баш манипулация на низове

Когато правите незначителни или прости замени, sed не се изисква. Баш може да направи манипулацията.

Например:
При замяна на fosslinux.gif с .mp4, sed не се изисква.
За да изпълните процеса с помощта на bash, използвайте кодирания текст по-долу:

# / bin / bash file_name = "fosslinux.gif "new_extension =" mp4 "# Замяна .gif с .mp4 generated_file_name = $ име_файл /.gif /.$ new_extension echo generated_file_name

Замяна на String с помощта на sed

sed може да бъде посочен като редактор на потоци. Sed може да замени низ във файлове. Нека разгледаме пример за файл, наречен singleboardbytes.txt, който има следната информация:
Foss Linux е чудесен сайт за обучение за всеки потребител на Linux. Вижте статии, публикувани от Foss Linux на техния сайт.

Сега от нашия файл трябва да заменим думата „сайт”С„уебсайт”И преименувайте файла на fosslinux.текст.

Разбиране на синтаксиса sed

sed -i 's / search_string / replace_string /' име на файла сед - е командата, използвана при изпълнението на горния синтаксис '-i'- използва се при промяна на съдържанието в оригиналния файл с помощно средство за заместване на низове, когато стойността за търсене съществува във файла. 'с'- това е заместващата команда'string_string'- това представлява низовата стойност, която трябва да се търси за замяна в оригиналния файл'replace_string'- това представлява стойността на низа, която се използва за заместване на търсената стойност. Низът трябва да съответства на низа, намерен от командата 'search_string'. 'име на файл'- това е името на файла, при което ще бъде приложена замяната.

Изпълнете следната команда във вашия терминал:

sed 's / site / website / g' singleboardbytes.txt> fosslinux.текст

Замяна на низове с помощта на sed

Забележка: Можете също да изпълните командата по-горе, като я поставите като bash скрипт.
Замяна с помощта на -i команда

След стартиране на командата, следващата стъпка е да замените използването на -i команда. -i е представяне за „in place“, което означава, че файлът е само заменен и няма създаване на допълнителни файлове. Използвайки нашия пример по-горе, изпълнете следната команда:

sed -i 's / site / website / g' singleboardbytes.текст

Замяна с помощта на командата -i

От фигурата по-долу можете да видите удивителен знак, който казва: „Файл“ / home / tuts / singleboardbytes.txt променен на диска.”Това показва, че промените са направени успешно.

Промени, направени в singleboardbytes.текст

Фигурата по-долу е файлът, съдържащ промените, направени в предишната стъпка, както до името на файла (единични байтове.txt към fosslinux.txt) и думата сайт е променен на уебсайт.

Окончателна промяна след стартиране на командата sed

Използване на променлива като стойности за търсене и заместители

С малко интерполация променливите могат да се използват за подмяна на низове. Първият аргумент sed, в този случай, трябва да използва двойни кавички вместо единични кавички. Например вашият код ще бъде подобен на този по-долу:

tuts () local search = $ 1 local replace = $ 2 # Обърнете внимание на двойните кавички sed -i "s / $ search / $ replace / g" singleboardbytes.текст 

Използване на променлива като стойности за търсене и заместители

sed има два вкуса, а именно: FreeBSD и Linux sed. Дистрибуциите на Linux използват Linux sed, докато потребителите на OS X използват FreeBSD sed. Тези вкусове са доста различни и следователно човек не може да прехвърля команди от един аромат на сед към друг.

Например, докато замествате съдържанието на файла с помощта на FreeBSD, трябва да се извърши архивиране с помощта на .удължаване на бак. Или можете да инициирате архивиране с използване на празни двойки кавички веднага след нотацията -i, както е показано в синтаксиса на bash по-долу:

tuts () local search = $ 1 local replace = $ 2 sed -i "" "s / $ search / $ replace / g" singleboardbytes.текст 

Ако архивирането не е направено по време на използването на FreeBSD, както е илюстрирано в синтаксисния код по-горе, ще изпаднете в грешка като показаната по-долу:

sed: 1: "/ Users / user / path / tuts ...": допълнителни знаци в края на командата h

Как да замените файл и да съчетаете цифровата схема с помощта на командата sed

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

#!/ bin / bash # Проверете дали стойността на аргумента на командния ред съществува или не, ако [$ 1 != ""]; след това # Търсене във всички низове, съдържащи цифри и добавяне на $ sed -i 's / \ b [0-9] \ 5 \ \ b / $ & / g' $ 1 fi

Замяна на низ с помощта на командата awk

В този случай ще използваме командата awk вместо командата sed, за да заменим съдържанието на файла. Разликата между тези команди е, че командата sed директно актуализира оригиналния файл, което не е така при командата awk.

#!/ bin / bash # Проверете дали стойността на аргумента на командния ред съществува или не, ако [$ 1 != ""]; след това # Търсене във всички низове въз основа на дата awk 'sub ("02/06/2020", "12/06/2020") 1' $ 1> temp.txt && mv temp.txt $ 1 fi

Заключение

Горните примери са жизненоважни за вашия напредък в обучението как да замените низ в Bash. Следователно, за да сте добри в това, ще трябва да практикувате редовно. Търсенето и подмяната на низа във файл може да изглежда сложно, но ще го намерите много по-управляемо, когато следвате правилно нашите указания.

Важно е да се отбележи, че изпълняването на командите понякога може да изглежда по-управляемо, но трябва да внимавате да не причинявате хаос от sed. Когато въведете грешни команди, ще счупите компютъра си, което ще ви създаде повече проблеми като загуба на данни. Следователно, за да бъдете в безопасност, винаги копирайте и поставете кода, както е на вашия терминал. Това ще предотврати правописни грешки, които могат да повредят вашата машина. Надяваме се, че тази статия ви е помогнала да научите как да замените низ в bash, като използвате тази статия.

Как да промените курсора на мишката и размера на курсора, цвета и схемата в Windows 10
Показалецът на мишката и курсорът в Windows 10 са много важни аспекти на операционната система. Това може да се каже и за други операционни системи, т...
Безплатни и игри с отворен код за разработване на Linux игри
Тази статия ще обхване списък с безплатни двигатели за игри с отворен код, които могат да се използват за разработване на 2D и 3D игри на Linux. Същес...
Урок Сянка на Tomb Raider за Linux
Shadow of the Tomb Raider е дванадесетото допълнение към поредицата Tomb Raider - франчайз за екшън-приключенска игра, създаден от Eidos Montreal. Игр...