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