Како заменити низ у датотеци у Басху

How Replace String File Bash



Као програмер, можда ћете морати да радите са различитим врстама датотека за привремено или трајно складиштење података. Понекад ћете можда морати да замените део датотеке или измените одређени садржај датотеке. Да бисте заменили садржај у датотеци, морате потражити одређени низ датотеке. Тхе али команда се користи за замену било ког низа у датотеци помоћу басх скрипте. Ова команда се може користити на различите начине да замени садржај датотеке у басх -у. Тхе ‘Авк ’Наредба се такође може користити за замену низа у датотеци. Овај водич ће вам показати како заменити било коју вредност низа из датотеке помоћу басх скрипте. Текстуална датотека под називом Салес.ткт са следећим садржајем је креиран да прикаже операције замене.

Салес.ткт







Дате Амоунт Ареа

01/01/2020 60000 Дака
10/02/2020 76000 Рајсхахи
21/03/2020 54000 Кхулна
15/04/2020 78000 Цхандпур
17/05/2020 45000 Богра
02/06/2020 67000 Цомилла

Замените стринг у датотеци командом `сед`

Основна синтакса ` сед `команда за замену одређеног низа у датотеци дата је испод.



Синтакса



сед 'с/сеарцх_стринг/реплаце_стринг/'назив документа

Сваки део горње синтаксе је објашњен у наставку.





'-И' опција се користи за измену садржаја оригиналне датотеке заменским низом ако стринг за претрагу постоји у датотеци.

‘С’ означава команду за замену.



„Стринг_претраживања“ садржи вредност низа која ће се тражити у датотеци ради замене.

„Стринг_замени“ садржи вредност низа која ће се користити за замену садржаја датотеке која одговара „Стринг_претраживања“ вредност.

'назив документа' садржи назив датотеке на коју ће се применити претрага и замена.

Пример 1: Замените датотеку командом „сед“

У следећој скрипти, текст за претрагу и замену биће преузет од корисника. Ако низ за претрагу постоји у „Салес.ткт“, биће замењен заменљивим низом. Овде ће се извршити претрага која разликује мала и велика слова.

#!/бин/басх

# Доделите име датотеке
назив документа=„Салес.ткт“

# Узмите низ за претрагу
читати -п 'Унесите низ за претрагу:'Претрага

# Узмите заменски низ
читати -п 'Унесите стринг за замену:'заменити

ако [[ $ сеарцх !='' && $ заменити !='' ]];онда
сед 'с/$ сеарцх/$ заменити/ ' $ назив датотеке
бити

Оутпут

Пример 2: Замените датотеку командом „сед“ са ознакама „г“ и „и“

Следећа скрипта ће радити као претходни пример, али ће низ за претрагу глобално тражити заставицу „г“, а за заставицу „и“ ће се вршити претраживање без обзира на велика и мала слова.

#!/бин/басх

# Узмите низ за претрагу
читати -п 'Унесите низ за претрагу:'Претрага

# Узмите заменски низ
читати -п 'Унесите стринг за замену:'заменити

ако [[ $ сеарцх !='' && $ заменити !='' ]];онда
сед 'с/$ сеарцх/$ заменити/дати ' 1 УСД
бити

Оутпут

Пример 3: Замените датотеку командом „сед“ и одговарајућим узорком цифара

Следећа скрипта ће тражити сав нумерички садржај у датотеци и замениће садржај додавањем „$“ симбол на почетку бројева.

#!/бин/басх

# Проверите да ли вредност аргумента командне линије постоји или не
ако [ 1 УСД !='' ];онда
# Претражите све низове који садрже цифре и додајте $
сед 'с/ б [0-9] {5 } б/$ &/г' 1 УСД
бити

Оутпут

Замените стринг у датотеци командом `авк`

авк ' наредба је још један начин замене низа у датотеци, али ова команда не може да ажурира оригиналну датотеку директно као „ али команда.

Пример 4: Замените датотеку командом „авк“

Следећа скрипта ће складиштити ажурирани садржај у темп.ткт датотеку која ће бити преименована оригиналном датотеком.

#!/бин/басх

# Проверите да ли вредност аргумента командне линије постоји или не
ако [ 1 УСД !='' ];онда
# Претражите све низове на основу датума
авк '{суб ('02/06/2020', '12/06/2020')} 1 ' 1 УСД >темп.ткт&& мвтемп.ткт1 УСД
бити

Оутпут

Закључак

Овај чланак вам је показао како да користите басх скрипте за замену одређених низова у датотеци. Задатак замене низа у датотеци требало би да вам постане лакши након увежбавања горњих примера.