Cara Membaca File Linux dari Baris per Baris

Ajukan pertanyaan
Artikel ini akan mengenalkan konsep memainkan file dari baris per baris di Linux dengan bantuan dari contoh-contoh dan pengalaman pengguna lain. Kami akan menjelaskan pada Anda beberapa kesalahan saat membaca file di sistem operasi Linux, dan menunjukkan beberapa contoh perbedaan output for loop dan while loop. Kami juga akan memberikan beberapa tips dan contoh untuk menginisasi loop, dan cara menggunakan output while loop.

Bagaimana Cara Membaca File Linux dari Baris per Baris


Kesalahan Umum For Loops

Salah satu kesalahan umum saat menggunakan skrip bash di GNU/Linux adalah membaca file dari baris per baris menggunakan for loop (untuk baris di dalam $ (cat file.txt) do. ..). Pada contoh berikut ini, fungsi for loop</ital> mengawali penilaian untuk tiap baris, bukan menilai tiap kata dalam file.


Anda juga dapat mengubah nilai dari variabel $ IFS (Internal Field Separator) dengan fungsi <bold>for loop
sebelum memulai proses loop.

Berikut ini adalah contoh output for loop:
untuk baris dalam $ (cat file.txt) do echo "$ line" done
Ini           
adalah
kolom
No
1
Ini
adalah
kolom
No
2
Ini

[...]

Solusinya adalah menggunakan sepasang fungsi while loop dengan pembacaan internal.

Cara ini juga dapat digunakan untuk memperoleh hasil dengan fungsi for loop, kemudian Anda dapat mengganti nilai variabel $ IFS (Internal Field Separator) sebelum memulai proses loop.

Contoh While Loop

Fungsi while loop adalah cara yang termudah untuk membaca file dari baris per baris.
Syntax

while read line           
do
command
done <file

Contoh For Loop

Bagian awal file:
Ini adalah baris 1

  • Ini adalah baris 2 *Ini adalah abris 3 *Ini adalah baris 4 *Ini adalah baris 5


Instruksi di command line:
while read line; do echo -e "$line\n"; done < file.txt


atau di skrip "bash" script:
#! / bin / bash           

while read line
do
echo-e "$ line \ n"
done <file.txt

Output yang muncul di layar (stdout):
Ini adalah baris 1

Ini adalah baris 2

Ini adalah baris 3

Ini adalah baris 4

Ini adalah baris 5

Tips untuk For Loops

Dari struktur file (seperti buku alamat atau /etc/passwd), sangat mungkin utnuk memperoleh nilai tiap kolom dan mengaturnya berdasarkan beberapa variabel dengan perintah 'read'. Mohon berhati-hati untuk menentukan variabel IFS dengan tanda pemisah yang benar (biasanya menggunakan spasi).

Contoh:
#! /bin/bash          

while IFS=: read user pass uid gid full home shell
do
echo -e "$full :\n\
Pseudo : $user\n\
UID :\t $uid\n\
GID :\t $gid\n\
Home :\t $home\n\
Shell :\t $shell\n\n"
done < /etc/passwd

Bonus

while read i; do echo -e "Parameter : $i"; done < <(echo -e "a\nab\nc")

Cara Menginisiasi Loop

Meski fungsi while loop tetap menjadi cara termudah untuk membaca file dari baris per baris, maka cara ini tetap memiliki dampak tersendiri. Fungsi while loop akan menghapus format baris, termasuk spasi dan tab. Di samping itu, fungsi for loop berpasangan dengan perubahan IFS yang dapat membantu menjaga struktur output dokumen.

Syntax

old_IFS=$IFS      # save the field separator           
IFS=$'\n' # new field separator, the end of line
for line in $(cat fichier)
do
command
done
IFS=$old_IFS # restore default field separator