Как заменить строку в файле в Bash

How Replace String File Bash



Как программист, вам может потребоваться работать с разными типами файлов для временного или постоянного хранения данных. Иногда вам может потребоваться заменить часть файла или изменить конкретное содержимое файла. Чтобы заменить содержимое в файле, вы должны найти конкретную строку файла. В но Команда используется для замены любой строки в файле с помощью сценария bash. Эту команду можно использовать по-разному для замены содержимого файла в bash. В ‘Awk ’Также можно использовать для замены строки в файле. Из этого туториала Вы узнаете, как заменить любое строковое значение из файла с помощью сценария bash. Текстовый файл с именем Sales.txt со следующим содержанием создается, чтобы показать операции замены.

Sales.txt







Дата Количество Область

01.01.2020 60000 Дакка
02.10.2020 76000 Раджшахи
21.03.2020 54000 Хулна
15.04.2020 78000 Чандпур
17.05.2020 45000 Богра
06.02.2020 67000 Комилла

Заменить строку в файле командой `sed`

Базовый синтаксис команды ` sed Команда для замены конкретной строки в файле приведена ниже.



Синтаксис



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

Каждая часть приведенного выше синтаксиса объясняется ниже.





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

‘S’ указывает заменяющую команду.



'Search_string' содержит строковое значение, которое будет искать в файле для замены.

«Replace_string» содержит строковое значение, которое будет использоваться для замены содержимого файла, соответствующего 'Search_string' ценить.

'имя файла' содержит имя файла, в котором будут применяться поиск и замена.

Пример 1. Замена файла командой «sed»

В следующем скрипте текст для поиска и замены будет взят у пользователя. Если строка поиска существует в «Sales.txt», она будет заменена строкой замены. Здесь будет выполняться поиск с учетом регистра.

#! / bin / bash

# Назначить имя файла
имя файлазнак равно'Sales.txt'

# Берем строку поиска
читать -п 'Введите строку поиска:'поиск

# Берем заменяемую строку
читать -п 'Введите заменяемую строку:'заменять

если [[ $ поиск !знак равно'' && $ заменить !знак равно'' ]];тогда
sed 's /$ поиск/$ заменить/ ' $ filename
быть

Выход

Пример 2. Замена файла командой «sed» с флагом «g» и «i»

Следующий сценарий будет работать так же, как и предыдущий пример, но в строке поиска будет производиться глобальный поиск флага «g», а поиск без учета регистра будет выполняться для флага «i».

#! / bin / bash

# Берем строку поиска
читать -п 'Введите строку поиска:'поиск

# Берем заменяемую строку
читать -п 'Введите заменяемую строку:'заменять

если [[ $ поиск !знак равно'' && $ заменить !знак равно'' ]];тогда
sed 's /$ поиск/$ заменить/давать' 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&& мвtemp.txt1 доллар
быть

Выход

Заключение

В этой статье показано, как использовать сценарии bash для замены определенных строк в файле. Задача по замене строки в файле станет для вас проще после отработки приведенных выше примеров.