Bash: sambil membaca baris

Bash While Read Line



Semasa anda mengerjakan skrip bash, kadangkala anda mungkin perlu membaca fail demi baris. Mari kita jelaskan dengan contoh. Anda memiliki beberapa data dalam file teks yang harus dieksekusi atau diproses dengan menggunakan skrip. Jadi, menjalankan skrip bash untuk memproses fail teks jauh berbeza. Anda perlu mengikuti sintaks yang ditentukan untuk membaca baris demi baris fail. Artikel ini akan membantu anda membaca baris dari fail menggunakan loop sementara di Bash.

Sintaks asas baris baca

Sintaks berikut digunakan untuk bash shell untuk membaca fail menggunakan while loop:







sementara membaca -rgarisan;
buat
membuang '$ baris';
selesai <input.file

Pilihan ‘-r’ dalam sintaks yang disebutkan di atas diteruskan untuk membaca arahan yang mengelakkan garis miring terbalik daripada ditafsirkan. Pilihan ‘input_file’ telah mewakili nama fail anda yang ingin anda akses dengan menggunakan perintah ‘baca’.



Pemisah medan dalaman yang disingkat IFS dapat digunakan sebelum perintah baca diatur ke rentetan nol yang menghalang ruang kosong yang mengarah ke depan atau di belakang.



sementara IFS=membaca -rgarisan;
buat
membuang $ baris;
selesai <input.file

Buka terminal menggunakan pintasan Ctrl + Alt + t dan kemudian jalankan arahan berikut di atasnya.





Contoh # 1: Pembacaan Fail mengikut baris

Mari kita ambil contoh di mana kita mempunyai fail bernama OS.txt yang mengandungi nama semua distribusi Linux yang penting. Sekiranya anda ingin membaca fail tanpa menggunakan perintah ‘cat’ maka, untuk tujuan ini anda dapat menjalankan perintah berikut untuk melakukan tugas tertentu. Kami akan menggunakan loop sementara yang akan membaca setiap baris dari OS.txt fail dan menyimpan kandungan dalam setiap langkah dalam baris $ pemboleh ubah yang dapat anda paparkan kemudian.

Tampalkan nama pengedaran Linux berikut di OS.txt



CentOS
Ubuntu
Debian
LinuxMint $sementara membacagarisan;
buat
membuang $ baris;
selesai <OS.txt


Dari arahan di atas, anda akan mendapat respons berikut di tetingkap terminal:

Contoh # 2: Membaca fail menggunakan skrip bash

Buat fail bash dan kemudian tambahkan kod yang disebutkan di bawah ini dalam fail ini untuk membaca kandungan fail. Anda boleh menyimpan fail teks sebelumnya ke dalam nama fail $ variabel baru dan pemboleh ubah $ n digunakan untuk mengekalkan nilai setiap baris. Sekarang, dengan menggunakan loop sementara kita akan membaca setiap baris dari fail dengan nombor baris tertentu.

#! / bin / bash
nama fail='OS.txt'
n=1
sementara membacagarisan;
buat
# untuk membaca setiap baris
membuang Talian pengedaran OS No.$ n:$ baris'
n= $((n +1))
selesai < $ nama fail

Simpan fail dengan nama OSinfo.sh dan ketik perintah berikut di terminal untuk menjalankan skrip bash di atas.

$bashOSinfo.sh

Sekarang, jalankan perintah kucing untuk melihat kandungan fail asal.

$kucingOS.txt

Kaedah Alternatif untuk membaca fail

Menggunakan nama fail lulus dari arahan

Dalam fail bash, anda perlu menambahkan skrip kod berikut. Dalam skrip ini, kita harus mengambil nama fail sebagai argumen. Pertama, nilai argumen dibaca oleh pemboleh ubah $ 1 yang mempunyai nama fail untuk dibaca. Ia akan memeriksa bahawa nama fail wujud di lokasi yang ditentukan kemudian menggunakan loop sementara membaca fail demi baris yang serupa dengan contoh sebelumnya.

#! / bin / bash
nama fail=$ 1
sementara membacagarisan;buat
# membaca setiap baris
membuang $ baris
selesai < fail $.txt

Simpan skrip di atas dengan bernama ‘Readline.sh’ dan jalankan perintah berikut di terminal untuk menjalankan skrip yang disebutkan di atas:

Dalam output di atas, anda akan melihat bahawa fail 'OSinfo.txt' dilewatkan sebagai argumen dan kandungan 'OSinfo.txt' akan dipaparkan setelah menghapus ruang tambahan. Anda boleh memaparkan kandungan fail asal dengan menjalankan ‘cat OSinfo.txt’.

Kesimpulannya

Dalam artikel ini, kami telah membincangkan cara membaca baris menggunakan loop sementara dalam pengaturcaraan bash. Kami telah menerapkan kaedah yang berbeza menggunakan skrip bash atau anda hanya dapat menggunakan file teks untuk melakukan pembacaan baris demi baris tugas. Sekiranya anda berminat untuk mengetahui lebih banyak contoh, kemudian gunakan sintaks yang disebutkan di atas, anda juga boleh melaksanakannya di sistem anda. Saya harap anda menikmati tutorial ini dan unik untuk anda. Beritahu sekiranya terdapat kesilapan.