Bash - Memasukan Filename ke Array

Bash - Memasukan Filename ke Array

Aku punya banyak file log, semuanya berekstensi .log. Aku ingin nama-nama file logku dimasukan ke array supaya aku bisa akses berdasarkan indexnya. Ini akan memudahkan untuk diolah. Aku memang tidak jago bash, makanya aku tulis disini supaya kelak aku bisa baca lagi.

Cara yang ku lakukan untuk memasukan filename ke array di bash:

1
2
cd /my/log/path/
logs=(); for log in *.log; do logs+=($log); done`

Kira-kira begini alurnya:

  • Pindah ke direktori dimana log-log ku disimpan
  • logs=() itu membuat array kosong
  • for ... done itu for loop.
  • logs+=($log) itu append nama file ke array

Jadi kurang lebih sih: satu demi satu nama file dengan ekstensi .log di append ke array yang bernama logs. Sekarang array logs berisi semua filename log-log ku.

Untuk menampilkan array logs beserta nomor indexnya, aku pakai cara ini:

1
for log in "${!logs[@]}"; do printf "%s\t%s\n" "$log" "${logs[$log]}"; done;
  • ${!logs[@]} : Tampilkan semua index dari array logs

Dengan modal pengetahuan bash array diatas, aku jadi terbantu untuk melakukan beberapa task.