Liệt kê toàn bộ tập tin, lưu vào mảng và các ví dụ liên quan trong bash script

Đôi lúc chúng ta cần lưu kết quả sau khi thực hiện lệnh ls hoặc lệnh find vào một mảng (array) để xử lý cho một yêu cầu nhỏ nào đó.
Trong bài này chúng ta sẽ tìm các file có đuôi .sql trong một thư mục, sau đó in ra tên không chứa đuôi .sql của từng tập tin.
Đầu tiên chúng ta cần list ra những file có đuôi .sql với lệnh ls và lưu vào array ten la files

Sau đó chúng ta tiến hành loop để in chỉ tên tập tin không co duoi .sql ( abc.sql thoi nhe, abc.xyz.sql ?? 😀 😛 )

Các bạn có thể mở rộng yêu cầu, chẳng hạn bạn muốn đọc từng file .sql ứng với từng table trong postgres database chẳng hạn, sau đó dùng lệnh pg_restore
ví dụ nhé:

Với $1 là param đuờng dẫn đến thư mục chứa file .sql.
Sau đó các bạn có thể lưu lại thành 1 file jjdo.sh, sau đó chạy :

P/S:
Để thay thế 1 pattern trong bash ta dùng ${var_name#shortest_matched_pattern} hoặc ${var_name#longest_matched_pattern} # tìm từ đầu – % tìm từ cuối