Bash Đối với mỗi dòng trong một tệp

Bash Each Line File



Vòng lặp For trong Bash có thể được sử dụng với các biến thể khác nhau để thực hiện nhiều tác vụ. Một trong những biến thể như vậy là Cho mỗi dòng trong tệp chịu trách nhiệm đọc tất cả các dòng trong tệp. Trong bài này, chúng ta sẽ nói về các phương pháp sử dụng cho từng dòng trong tệp trong Bash.

Lưu ý: Các phương pháp hiển thị bên dưới đã được chứng minh trên Ubuntu 20.04. Tuy nhiên, chúng cũng sẽ hoạt động tốt với bất kỳ bản phân phối Linux nào khác.







Phương pháp sử dụng cho từng dòng trong tệp trong Bash:

Trong các phương pháp này, chúng tôi sẽ hiển thị cho bạn một ví dụ trong đó bạn có thể đọc từng dòng từ một tệp và sau đó bạn có thể hiển thị nó trên thiết bị đầu cuối hoặc thậm chí bạn có thể lưu trữ các dòng này trong một tệp khác. Chúng ta hãy xem xét cả hai phương pháp này.



Phương pháp # 1: Để hiển thị các dòng đã đọc trên thiết bị đầu cuối:

Để hiển thị các dòng của tệp trên thiết bị đầu cuối bằng cách sử dụng cho từng dòng trong tệp, bạn sẽ phải thực hiện các bước sau:



Bước # 1: Tạo tệp văn bản giả:

Trước hết, bạn phải tạo một tệp văn bản với một số dữ liệu ngẫu nhiên để phục vụ cho việc trình diễn. Mặc dù, tệp văn bản này có thể được tạo ở bất kỳ đâu, tuy nhiên, bạn nên tạo nó trong thư mục Home. Để làm điều đó, hãy nhấp vào biểu tượng Trình quản lý tệp được đánh dấu trong hình ảnh hiển thị bên dưới:





  • Tạo tệp văn bản giả

    Bây giờ hãy nhấp chuột phải vào bất kỳ đâu trong thư mục Trang chủ của bạn và chọn tùy chọn Tài liệu mới từ menu xuất hiện. Sau đó chọn tùy chọn Tài liệu trống. Khi một tài liệu trống đã được tạo trong thư mục Trang chủ của bạn, hãy cung cấp tên bạn chọn cho nó, sau đó là phần mở rộng .txt. Trong ví dụ này, chúng tôi đã đặt tên nó là ForEachLine.txt.

  • Tạo một tệp văn bản giả 2
    Nhấp đúp vào tệp văn bản này để mở tệp và sau đó nhập bất kỳ văn bản ngẫu nhiên nào vào tệp như thể hiện trong hình sau. Sau khi thực hiện việc này, hãy lưu tệp này và đóng nó.



  • Tạo một tệp văn bản giả 3

    Bước # 2: Tạo Bash Script:

    Bây giờ, hãy tạo tệp Bash theo cách tương tự như bạn đã tạo tệp văn bản trong thư mục Trang chủ ngoại trừ lần này, bạn phải cung cấp tên của nó, theo sau là phần mở rộng .sh thay vì phần mở rộng .txt. Chúng tôi đã đặt tên tệp Bash của mình là ForEachLine.sh nhưng bạn có thể đặt bất kỳ tên nào mà bạn chọn.
    Tạo tập lệnh Bash

    Mở tệp này bằng cách nhấp đúp vào nó và sau đó nhập tập lệnh hiển thị trong hình bên dưới vào tệp Bash mới tạo của bạn. Ở đây, dòng đầu tiên là ở đó để chỉ ra rằng tập lệnh sau là tập lệnh Bash. Chúng tôi chỉ cần tạo một biến có tên là Tệp và đã gán cho nó tên tệp văn bản của chúng tôi làm giá trị của nó, tức là ForEachLine.txt. Sau đó, chúng tôi đã tạo một biến có tên là Lines và cân bằng nó thành $ (cat $ File). Ở đây, lệnh cat đọc nội dung của tệp văn bản của chúng ta và khi nó được đặt trước bằng ký hiệu $, thì nội dung được đọc bởi lệnh này sẽ được lưu trữ trong biến Lines. Bằng cách này, tất cả các dòng của tệp có tên ForEachLine.txt sẽ được lưu trữ trong biến Lines. Sau đó, chúng tôi đã áp dụng vòng lặp For có một dòng lặp. Trình lặp này hoạt động trên biến Lines mà chúng ta đã tạo ở trên và nó sẽ lặp lại lần lượt qua tất cả các dòng. Sau đó, trong khối do-done, chúng tôi chỉ hiển thị tất cả các dòng này trên thiết bị đầu cuối bằng cách sử dụng lệnh echo.
    Tạo Bash Script2

    Bước # 3: Chạy Bash Script:

    Bây giờ khởi chạy thiết bị đầu cuối trong Ubuntu 20.04 và sau đó chạy lệnh sau trong đó để thực thi tập lệnh Bash đã tạo ở trên:
    bash ForEachLine.sh
    Chạy tập lệnh Bash

    Khi lệnh này sẽ làm cho tập lệnh bash thực thi, thì bạn sẽ có thể xem tất cả các dòng của tệp văn bản trên thiết bị đầu cuối của bạn như được hiển thị trong hình ảnh sau:
    Chạy tập lệnh Bash

    Phương pháp # 2: Để lưu tất cả các dòng đã đọc trong một tệp khác:

    Trong phương pháp này, chúng tôi đã sửa đổi một chút tập lệnh Bash được tạo trong phương pháp trên để lưu tất cả các dòng đã đọc trong một tệp văn bản mới thay vì hiển thị chúng trên thiết bị đầu cuối. Để thực hiện việc này, hãy thực hiện các bước được đề cập bên dưới:

    Bước # 1: Sửa đổi tập lệnh Bash đã tạo ở trên và chạy nó:

    Mở tập lệnh Bash mà bạn đã tạo trong phương pháp trên và sửa đổi nó như được hiển thị trong hình sau. Chúng tôi chỉ cần thêm biểu tượng >> theo sau là tên tệp mới sau lệnh echo trong khối do-done. Sửa đổi này sẽ lưu tất cả các dòng đã đọc vào một tệp văn bản mới thay vì hiển thị chúng trên thiết bị đầu cuối. Bây giờ hãy chạy lại tập lệnh Bash thông qua terminal với lệnh bash theo sau là tên tệp Bash. Lần này khi tập lệnh Bash chạy, nó sẽ tạo một tệp văn bản mới có tên trong trường hợp này là NewFile.txt.
    Sửa đổi tập lệnh Bash được tạo ở trên và chạy nó1

    Bước # 2: Truy cập Tệp Văn bản Mới được Tạo:

    Để xác minh xem tất cả các dòng đã đọc đã được lưu vào tệp văn bản mới hay chưa, bạn chỉ cần xem nội dung của tệp đó bằng cách chạy lệnh sau trong thiết bị đầu cuối của mình:
    mèo NewFile.txt
    Truy cập tệp văn bản mới tạo
    Kết quả hiển thị trong hình dưới đây sẽ đảm bảo với bạn rằng tất cả các dòng đã đọc đã được sao chép vào tệp văn bản mới.
    Truy cập tệp văn bản mới tạo2

    Phần kết luận:

    Bằng cách này, bạn có thể tận dụng từng dòng trong tệp để đọc tất cả các dòng của tệp rồi thao tác với các dòng này. Chúng ta vừa nói về hai kịch bản cơ bản trong bài viết này, tuy nhiên, bạn thậm chí có thể sử dụng vòng lặp này cho các vấn đề phức tạp hơn.