Басх: док читате ред

Bash While Read Line



Када радите на басх скриптама, понекад ћете можда морати да читате датотеку ред по ред. Објаснимо на примеру. У текстуалној датотеци имате неке податке које треба извршити или обрадити помоћу скрипте. Дакле, покретање басх скрипте за обраду текстуалне датотеке је много другачије. Морате следити одређену синтаксу да бисте читали датотеку ред по ред. Овај чланак ће вам помоћи да прочитате ред из датотеке помоћу вхиле петље у Басх -у.

Основна синтакса линије за читање

Следећа синтакса се користи за басх схелл за читање датотеке помоћу вхиле петље:







док читати лине;
урадити
Избацио '$ линија';
Готово <улазни документ

Опција „-р“ у горе поменутој синтакси је прослеђена за наредбу за читање која избегава тумачење повратне косе црте. Опција „инпут_филе“ представља назив ваше датотеке којој желите да приступите помоћу команде „реад“.



Унутрашњи сепаратор поља скраћен као ИФС може се користити пре него што се наредба за читање постави на нулл стринг који спречава скраћивање почетног или задњег размака.



док ИФС=читати лине;
урадити
Избацио $ линија;
Готово <улазни документ

Отворите терминал помоћу пречице Цтрл + Алт + т, а затим покрените следеће команде на њему.





Пример # 1: Читање датотека ред по ред

Узмимо пример у коме претпоставимо да имамо датотеку под именом ОС.ткт која садржи имена свих важних дистрибуција Линука. Ако желите да прочитате датотеку без употребе команде 'цат', у ту сврху можете извршити следећу команду да бисте извршили одређени задатак. Користићемо вхиле петљу која ће читати сваки ред из датотеке ОС.ткт и складиштити садржај у сваком кораку у променљивој линији $ коју касније можете приказати.

Залепите следећа имена дистрибуција Линука у датотеку ОС.ткт



ЦентОС
Убунту
Дебиан
ЛинукМинт $док читатилине;
урадити
Избацио $ линија;
Готово <ОС.ткт


Из горње команде добићете следећи одговор у прозору терминала:

Пример # 2: Читање датотеке помоћу басх скрипте

Направите басх датотеку, а затим додајте доле наведени код у ову датотеку да бисте прочитали садржај датотеке. Претходну текстуалну датотеку можете сачувати у нову променљиву $ филенаме, а променљива $ н се користи за чување вредности сваког реда. Сада ћемо помоћу вхиле петље читати сваки ред из датотеке са одређеним бројем реда.

#!/бин/басх
назив документа='ОС.ткт'
н=1
док читатилине;
урадити
# за читање сваког реда
Избацио 'Линија дистрибуције ОС бр.$ н:$ линија'
н= $((н+1))
Готово < $ назив датотеке

Сачувајте датотеку са именом ОСинфо.сх и откуцајте следећу команду на терминалу да бисте покренули горњу басх скрипту.

$басхОСинфо.сх

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

$мачкаОС.ткт

Алтернативни метод за читање датотека

Коришћење прослеђивања имена датотеке из команде

У басх датотеку морате да додате следећу скрипту кода. У овој скрипти морамо узети назив датотеке као аргумент. Прво, вредност аргумента чита променљива $ 1 која има назив датотеке за читање. Провериће да ли име датотеке постоји на наведеној локацији, а затим помоћу вхиле петље чита датотеку ред по ред, слично претходном примеру.

#!/бин/басх
назив документа=1 УСД
док читатилине;урадити
# читање сваког реда
Избацио $ линија
Готово < $ филе.ткт

Сачувајте горњу скрипту са именом „Реадлине.сх“ и извршите следећу команду на терминалу да бисте покренули горе поменуту скрипту:

У горњем излазу ћете приметити да датотека „ОСинфо.ткт“ пролази као аргумент и да ће садржај „ОСинфо.ткт“ бити приказан након уклањања додатних размака. Оригинални садржај датотеке можете приказати покретањем „цат ОСинфо.ткт“.

Закључак

У овом чланку смо разговарали о томе како читати редове користећи вхиле петљу у басх програмирању. Имплементирали смо различите методе помоћу басх скрипте или једноставно можете користити текстуалну датотеку за читање датотеке ред по ред задатак. Ако сте заинтересовани да сазнате више примера, употребом горе наведене синтаксе можете извршити и на свом систему. Надам се да сте уживали у овом водичу и били јединствени за вас. Обавестите нас у случају грешке.