Bash lặp qua các tệp trong một thư mục

Bash Loop Through Files Directory



Trong Ubuntu, bao gồm cả Bash, các vòng lặp giúp bạn có thể áp dụng các thao tác trên nhiều tệp. Vòng lặp là cách hiệu quả nhất vì nó cho phép người dùng áp dụng cùng một logic cho mục đó nhiều lần bằng cách sử dụng một dòng mã nhỏ.

Để hiểu khái niệm lặp qua các tệp trong thư mục, bạn cần truy cập vào ứng dụng và dịch vụ Ubuntu. Khi bạn có một số đặc quyền, bạn chỉ có thể thao tác với các tệp và thư mục.







Bạn nên cài đặt Bash trên hệ điều hành Ubuntu. Trong một số cài đặt, nó được cài đặt theo mặc định trong quá trình cập nhật các gói. Nếu nó đã được cài đặt, bạn cần nâng cấp phiên bản vì nó phải ở trên 4. Để tiếp tục hướng dẫn hiện tại, bạn cần giữ phiên bản trên 4. Để kiểm tra phiên bản Bash được cài đặt sẵn trong hệ thống của bạn, hãy sử dụng trên thiết bị đầu cuối Ubuntu.



$Bash--phiên bản



Vì vậy, bạn phải thực hiện một số chức năng trên tệp và thư mục. Bạn có thể thực hiện các lệnh được giải thích dưới đây trên bất kỳ thư mục nào bạn chọn. Nhưng chính xác mà nói, tốt hơn hết là bạn nên tạo một thư mục mới để tất cả những thứ thuộc về nó có thể dễ dàng truy cập trực tiếp khi bạn mở nó.





Bước đầu tiên là tạo một thư mục. Chúng tôi đã lấy một tên mẫu của thư mục abc. Tạo một thư mục bằng cách thực hiện lệnh.

$mkdirabc



Sau khi tạo thư mục, bây giờ bạn cần thực hiện tất cả các lệnh trên đó. Vì vậy, sau khi tạo thư mục, hãy chuyển sang thư mục đó. Sử dụng lệnh được trích dẫn dưới đây:

$đĩa CDabc

Sau khi vào thư mục, bây giờ hãy tạo một số tệp bằng cách sử dụng lệnh cảm ứng.

$chạm vàofile1.txt

Nhiều phương pháp được sử dụng để tạo tệp trong Ubuntu. Bên cạnh lệnh touch, chúng tôi đã sử dụng lệnh echo ở đây để tạo một tệp và thêm nội dung vào đó một cách chung chung trong một lệnh duy nhất:

$quăng điLinux, ubuntu, Postgresql>file7.txt

Tệp này được tạo trên một thư mục đơn giản hiện đang chạy theo mặc định. Vì vậy, tên của thư mục mới tạo không được thêm vào dấu nhắc lệnh. Bạn cũng có thể tạo tệp bằng cách sử dụng phạm vi và mở rộng trong lệnh cảm ứng.

$chạm vàotập tin-{1..số 8}.txt

Bằng cách sử dụng lệnh này trong các tệp mới của phần mở rộng .txt sẽ được tạo bằng cách sử dụng một lệnh duy nhất.

Sau đó, bây giờ bạn có thể lặp lại thư mục vừa được tạo. Hiển thị tên tệp. Vì chúng ta phải lặp qua các tệp có trong thư mục, chúng ta cần một vòng lặp. Các vòng lặp rất hiệu quả để sử dụng vì chúng tìm nạp dữ liệu trong thời gian ngắn hơn, yêu cầu ít đầu vào hơn. Ở đây chúng ta sẽ sử dụng vòng lặp for. Bằng cách sử dụng vòng lặp này, mỗi tên tệp sẽ được hiển thị ở dòng tiếp theo.

$ tập tin trong *;làm quăng đi $ tệp;xong

* được sử dụng cho tất cả các tệp có trong thư mục này. Điều này cho phép vòng lặp ‘for’ lấy tất cả các tệp. Nhưng để làm cho đầu ra chính xác, bạn có thể thêm một số thuật ngữ có dấu hoa thị. Ví dụ: ‘tệp- *’ được sử dụng cho tất cả các tệp bắt đầu từ tệp. Và * .txt để tìm nạp các tệp có phần mở rộng .txt. Chúng tôi sẽ sử dụng thêm các ví dụ này trong bài viết.

Vòng lặp này sẽ hoạt động để nó sẽ tìm nạp tất cả các tệp từ thư mục và sau đó hiển thị tất cả các tệp thông qua lệnh echo. Dấu $ ở đây đại diện cho tên của tệp. Từ kết quả, bạn có thể thấy rằng mỗi tên tệp được hiển thị.

Sau khi xác minh các tệp được tạo bằng cách hiển thị tên của các tệp, bây giờ đã đến lúc nhập giá trị vào các tệp vì các tệp được tạo trống. Điều này có thể được thực hiện theo cách thủ công bằng cách mở từng tệp trong trình soạn thảo văn bản và sau đó ghi dữ liệu. Tùy chọn thứ hai là nhập dữ liệu trong mỗi tệp thông qua lệnh trong thiết bị đầu cuối. Nhưng nó đòi hỏi thời gian để nhập dữ liệu trong mỗi tệp thông qua một lệnh duy nhất cho mỗi tệp. Nhưng nó có thể được thực hiện dễ dàng và tổng hợp bằng cách sử dụng vòng lặp for trong một lệnh duy nhất.

$ tập tin trong *;làm quăng đi -2 $ tệp nLinux Ubuntu> $ tệp;xong

Sau khi thực hiện lệnh, giá trị đã được nhập vào mỗi tệp chúng tôi đã tạo. Khi được sử dụng với echo, cờ ‘-e’ sẽ bảo toàn dòng mới trong tệp. Để xem dữ liệu đã nhập, bạn có thể điều hướng đến thư mục ‘abc’. Bây giờ hãy mở bất kỳ tệp văn bản nào. Tệp không còn trống nữa.

‘$ File sẽ hiển thị tên tệp đầu tiên trong tệp và dữ liệu bạn đã nhập sẽ được xem trước trên dòng thứ hai vì n được sử dụng để chuyển các từ được sử dụng sau dòng này sang dòng khác. Bạn cũng có thể kiểm tra dữ liệu đã nhập thông qua lệnh.

$ tập tin trong *;làm con mèo $ tệp;xong

Lệnh Cat được sử dụng để tìm nạp dữ liệu có trong tất cả các tệp của thư mục.

Cả hai thủ tục nhập dữ liệu và tìm nạp nó có thể được thực hiện thông qua một lệnh duy nhất.

$ tập tin trong *;làm quăng đi-Và$ tệp nbash lập trình> $ tệp;con mèo $ tệp;xong

Bước đầu tiên là ghi dữ liệu vào tệp và sau đó hiển thị nó. Khi bạn thực hiện lệnh, kết quả đầu ra sẽ như sau:

Mỗi tệp chứa cùng một giá trị. Điều này là do vòng lặp ‘for’.

Chúng ta biết vòng lặp để tìm nạp dữ liệu và chèn giá trị, v.v., nhưng vòng lặp cũng được sử dụng để tạo bản sao lưu. Các tệp này có phần mở rộng là .bak ở cuối. Bây giờ thực hiện lệnh sao lưu trong trình bao để xem bản sao lưu của từng tệp.

$ tập tin trong *;làm cp $ tệp $ tệp.phía sau;xong;

Từ khóa cp được sử dụng để sao lưu tất cả các tệp. Bây giờ để xem các tệp mà lệnh này được áp dụng. Chúng tôi sử dụng lệnh như:

$ls- NS

Bây giờ nó có thể nhìn thấy từ đầu ra rằng chi tiết của các tệp được hiển thị. Ngày, tên tệp, tên người dùng và cả thời gian nó bị xóa. Ngoài ra, bạn có một bản sao chính xác của mỗi tệp.

Nếu chúng ta chỉ muốn các tệp jpeg. Chúng tôi sẽ sử dụng điều này trong lệnh

$ tập tin trong *.jpeg;làm quăng đi $ tệp;xong

Điều này sẽ chỉ mang lại tên của hình ảnh.

Một tìm kiếm đơn giản cũng có thể thực hiện chức năng tương tự. Nó sẽ tìm nạp tất cả các tệp có phần mở rộng là .sh.

$tìm thấy. - Tên*NS

Chúng tôi sẽ sử dụng từ khóa tìm thấy trong vòng lặp for.

$ tập tin trong *;làmtìm thấy. Tập tin.*;xong

Thao tác này sẽ đưa tất cả các tệp vào thư mục hiện tại. Chúng có phần mở rộng là .bak, .jpeg, .txt. Vân vân.

Bây giờ, nếu bạn muốn xem tên của tất cả các tệp thư mục và dữ liệu bên trong chúng, điều này cũng được thực hiện bởi vòng lặp ‘for’.

$ tập tin trong *;làm tập tin $ tệp;xong

Phần kết luận

Việc lặp qua các tệp trong bất kỳ thư mục nào không còn khó khăn nữa, như chúng ta đã biết, bằng cách sử dụng các vòng lặp trong Bash và thực hiện trên hệ điều hành Linux. Hướng dẫn này là hướng dẫn đầy đủ để tạo, truy cập và thực hiện các thao tác trên thư mục bằng vòng lặp ‘for’.