Cum se citește fișierul rând cu rând în scriptul Bash

How Read File Line Line Bash Script



Cum ați scrie un script Bash care poate procesa un fișier text pe rând pe rând. Mai întâi aveți nevoie de o sintaxă și o abordare pentru a citi fișierul rând cu rând. Metodele pentru această abordare sunt prezentate în acest tutorial.

Să presupunem că aveți un fișier numit company.txt care conține numele companiei. Acest fișier conține următorul conținut.







Company.txt
Samsung
Nokia
LG
Simfonie
iphone

Exemplul -1: Citirea conținutului fișierului din linia de comandă

Să presupunem că doriți să citiți fișierul, company.txt , linie cu linie din linia de comandă fără 'pisică' comanda. Rulați următoarea comandă pentru a efectua sarcina. in timp ce bucla va citi fiecare linie din fișier company.txt în fiecare pas și stocați conținutul liniei în $ linie variabilă care va fi tipărită ulterior.



$in timp ce cititlinia;do aruncat $ linie;Terminat <company.txt



Exemplul -2: Citirea conținutului fișierului utilizând script

Creați un fișier bash și adăugați următorul cod pentru a citi conținutul unui anumit fișier. Aici, un nume de fișier existent este stocat în $ nume de fișier variabilă și $ n variabila este utilizată pentru a păstra valoarea numărului de linie al fișierului respectiv. Ca exemplu anterior, in timp ce bucla este utilizată pentru a citi acest fișier cu numărul de linie.





#! / bin / bash
nume de fișier=„company.txt”
n=1
in timp ce cititlinia;do
# citind fiecare rând
aruncat „Linia nr.$ n:$ linie'
n= $((n +1))
Terminat < $ nume de fișier

Rulați următoarea comandă pentru a executa scriptul.

$bashreadfile1.sh

Alerga 'pisică' comanda cu company.txt pentru a afișa conținutul original al fișierului company.txt fişier.



$ cat company.txt

Exemplu -3: Trecerea numelui fișierului din linia de comandă și citirea fișierului

Creați un fișier bash și adăugați următorul script. Acest script va prelua numele fișierului din argumentul liniei de comandă. Valoarea primului argument este citită de variabila $ 1 care va conține numele fișierului pentru citire. Dacă fișierul există în locația curentă, atunci in timp ce loop va citi fișierul linie cu linie ca în exemplul anterior și va imprima conținutul fișierului.

#! / bin / bash
nume de fișier=1 $
in timp ce cititlinia;do
# citind fiecare rând
aruncat $ linie
Terminat < $ nume de fișier

Rulați scriptul de mai sus cu angajat.txt fișier ca valoare argument. Ieșirea va afișa conținutul angajat.txt fișier eliminând spațiul suplimentar. Puteți afișa conținutul original al angajat.txt fișier utilizând 'pisică' comanda.

$ bash readfile2.txt angajat.txt
$ cat angajat.txt

Exemplu - 4: Citirea fișierului omițând scăderea barei inversă

Dacă doriți să citiți fiecare linie a unui fișier omițând backslash escape, atunci trebuie să utilizați „-R” opțiune cu comanda read în in timp ce buclă.

#! / bin / bash
in timp ce citit -rlinia;do
# Citind fiecare rând
aruncat $ linie
Terminat <company2.txt

Creați un fișier numit company2.txt cu backslash și rulați următoarea comandă pentru a executa scriptul. Ieșirea va afișa conținutul fișierului fără nicio bară inversă.

$bashreadfile3.sh

Va trebui să citiți fișierul în multe scopuri de programare. De exemplu, puteți căuta sau potrivi cu ușurință orice conținut particular din orice fișier citind fiecare rând separat. Deci, este o sarcină esențială pentru orice programare. Câteva exemple simple de citire a fișierului în script bash sunt prezentate în acest tutorial. Acestea vă vor ajuta să obțineți ideea de a citi conținutul fișierului linie cu linie utilizând bucla while în script bash și să aplicați în scriptul dvs. mai eficient. Pentru mai multe informații vizionați videoclipul !