Cara Menggunakan Perintah readarray Untuk Membaca Array 2D di Bash

Cara Menggunakan Perintah Readarray Untuk Membaca Array 2d Di Bash



Bash adalah bahasa skrip shell populer yang digunakan di sistem operasi Linux dan Unix. Ini menyediakan serangkaian perintah dan fitur yang kaya yang membuatnya mudah untuk mengotomatiskan tugas yang berulang. 'Readarray' adalah salah satu perintah yang paling membantu di Bash. Dengan perintah ini, baris dari file dapat dibaca menjadi array 2D. Dalam posting ini, kita akan membahas cara membaca baris dari file ke dalam array 2D menggunakan perintah 'readarray' Bash.

Menggunakan 'readarray' di Bash

Perintah 'readarray' membaca baris dari file atau input standar dan menugaskannya ke array. Sintaks untuk menggunakan 'readarray' adalah sebagai berikut:







readarray [ -d BERBAGI ] [ -n JUMLAH ] [ - ASAL ] [ -s HITUNG ] [ -T ] Himpunan


Opsi yang tersedia untuk perintah 'readarray' adalah:



'-d BERBAGI': Menyetel pembatas untuk digunakan saat memisahkan baris menjadi elemen larik dan secara default, pembatas adalah karakter baris baru.



'-n COUNT': Menentukan jumlah baris maksimum untuk dibaca ke dalam array.





'-O ASAL' : Mengatur indeks awal larik.

'-s COUNT': Menentukan jumlah baris yang akan dilewati sebelum membaca ke dalam array.



'-T': Menghapus karakter baris baru yang tertinggal dari setiap baris yang dibaca ke dalam larik.

Berikut adalah contoh penggunaan 'readarray' untuk membaca baris dari file ke dalam array 2D dan untuk itu saya telah membuat testfile.txt yang isinya adalah:

1 2 3
4 5 6
7 8 9


Jadi inilah skrip bash lengkap yang menunjukkan penggunaan perintah 'readarray':

#!/bin/bash
# Baca baris dari file ke dalam array
readarray -T baris < testfile.txt
# Deklarasikan array 2D dengan 3 baris dan 3 kolom
menyatakan -A Himpunan
# Ulangi garis dan pisahkan setiap baris menjadi elemen
untuk Saya di dalam ' ${!lines[@]} ' ; Mengerjakan
JIKA = ' ' membaca -R -A elemen <<< ' ${garis[i]} '
untuk J di dalam ' ${!elements[@]} ' ; Mengerjakan
jika [ [ -N ' ${element[j]} ' ] ] ; Kemudian
Himpunan [ $i , $j ] = ${element[j]}
menjadi
Selesai
Selesai
# Cetak array
untuk ( ( Saya = 0 ;Saya < 3 ;i++ ) ) ; Mengerjakan
untuk ( ( J = 0 ;J < 3 ;j++ ) ) ; Mengerjakan
gema -N ' ${array[$i,$j]} '
Selesai
gema
Selesai


Di sini pertama saya telah mendeklarasikan array 2D yang disebut 'array' dan kemudian menggunakan perintah 'readarray' untuk membaca baris dari file bernama 'testfile.txt' ke dalam array 'lines'. Selanjutnya, kode mengulangi larik 'garis' dan membagi setiap baris menjadi elemen menggunakan perintah 'IFS' dan 'baca'.

Setelah itu, ia menyimpan elemen dalam 'array' array 2D dan kemudian menggunakan perintah baca untuk membagi setiap baris menjadi elemen. Sekarang setiap elemen ditugaskan ke elemen yang sesuai dalam larik 'array' dan akhirnya, isi larik 'array' menggunakan nested for loop dicetak.

Kesimpulan

Perintah 'readarray' memudahkan untuk memanipulasi data dalam jumlah besar dalam skrip Bash. Dengan mengikuti contoh yang diberikan dalam artikel ini, Anda dapat mulai menggunakan 'readarray' di skrip Bash Anda sendiri untuk membaca baris dari file dan memprosesnya menjadi array 2D.