Как да замените низ във файл в Bash

How Replace String File Bash



Като програмист може да се наложи да работите с различни типове файлове, за да съхранявате данни временно или постоянно. Понякога може да се наложи да замените част от файла или да промените конкретното съдържание на файла. За да замените съдържание във файл, трябва да потърсите конкретния файлов низ. The но команда се използва за замяна на всеки низ във файл с помощта на bash скрипт. Тази команда може да се използва по различни начини за замяна на съдържанието на файл в bash. The „Аук 'Командата може да се използва и за замяна на низ във файл. Този урок ще ви покаже как да замените всяка стойност на низ от файл с помощта на bash скрипт. Текстов файл с име Sales.txt със следното съдържание е създадено, за да покаже операциите по подмяна.

Sales.txt







Площ на сумата за дата

01/01/2020 60000 Дака
10.02.2020 76000 Раджшахи
21/03/2020 54000 Khulna
15/04/2020 78000 Чандпур
17/05/2020 45000 Богра
02/06/2020 67000 Comilla

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

Основният синтаксис на ` sed `команда за подмяна на конкретния низ във файл е дадена по -долу.



Синтаксис



sed 's/search_string/replace_string/'име на файл

Всяка част от горния синтаксис е обяснена по -долу.





'-I' опцията се използва за промяна на съдържанието на оригиналния файл със заместващия низ, ако низът за търсене съществува във файла.

'с' показва командата заместител.



„String_ search“ съдържа стойността на низа, която ще се търси във файла за замяна.

‘Replace_string’ съдържа стойността на низ, която ще се използва за замяна на съдържанието на файла, което съответства на „String_ search“ стойност.

'име на файл' съдържа името на файла, където ще се прилага търсенето и замяната.

Пример 1: Заменете файла с командата „sed“

В следния скрипт текстът за търсене и замяна ще бъде взет от потребителя. Ако низът за търсене съществува в „Sales.txt“, той ще бъде заменен от низ за замяна. Тук ще се извърши търсене с чувствителност към регистър.

#!/bin/bash

# Задайте името на файла
име на файл=„Sales.txt“

# Вземете низа за търсене
Прочети -стр 'Въведете низа за търсене:'Търсене

# Вземете заместващия низ
Прочети -стр 'Въведете низ за замяна:'замени

ако [[ $ търсене !='' && $ замяна !='' ]];тогава
sed 'с/$ търсене/$ замяна/ ' $ име на файл
бъда

Изход

Пример 2: Заменете файла с командата „sed“ с „g“ и „i“ Flag

Следният скрипт ще работи като предишния пример, но низът за търсене ще се търси в световен мащаб за знака „g“, а търсенето без значение за регистъра ще се извърши за знака „i“.

#!/bin/bash

# Вземете низа за търсене
Прочети -стр 'Въведете низа за търсене:'Търсене

# Вземете заместващия низ
Прочети -стр 'Въведете низ за замяна:'замени

ако [[ $ търсене !='' && $ замяна !='' ]];тогава
sed 'с/$ търсене/$ замяна/дай ' $ 1
бъда

Изход

Пример 3: Заменете файла с команда „sed“ и съвпадащ цифров модел

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

#!/bin/bash

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

Изход

Заменете низа във файл с команда awk

awk ' командата е друг начин за замяна на низ във файл, но тази команда не може да актуализира оригиналния файл директно като „ но команда.

Пример 4: Заменете файла с команда „awk“

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

#!/bin/bash

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

Изход

Заключение

Тази статия ви показа как да използвате bash скриптове за замяна на определени низове във файл. Задачата да замените низ във файл трябва да стане по -лесна за вас, след като практикувате горните примери.