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 скриптове за замяна на определени низове във файл. Задачата да замените низ във файл трябва да стане по -лесна за вас, след като практикувате горните примери.