Hướng dẫn sử dụng lệnh sed trong Linux

Trong bài viết này, bạn sẽ tìm hiểu cách sử dụng của lệnh sed – một công cụ mạnh mẽ để chỉnh sửa văn bản dòng lệnh trong Linux. Sed là viết tắt của stream editor (trình chỉnh sửa dòng), và nó được sử dụng để chỉnh sửa các streams (dòng dữ liệu).

Xem thêm:

Lệnh Case .. esac trong Shell Script

Logging trong Shell Script

1. Stream là gì?

Nếu bạn đã từng thực hiện chuyển hướng đầu vào/đầu ra (IO redirection) hoặc sử dụng pipe, bạn đã làm việc với streams. Một stream có thể hiểu là luồng dữ liệu truyền từ một tiến trình sang tiến trình khác thông qua một pipe, từ một tệp này sang tệp khác hoặc từ một thiết bị sang thiết bị khác.

Dữ liệu này thường là văn bản, và chúng ta có thể thấy các loại streams phổ biến như:

  • Standard Input: luồng đầu vào tiêu chuẩn
  • Standard Output: luồng đầu ra tiêu chuẩn
  • Standard Error: luồng lỗi tiêu chuẩn

2. Chức Năng Chính Của sed

Sed được sử dụng để thực hiện các thay đổi văn bản cơ bản trên một input stream. Ví dụ, bạn có thể sử dụng sed để:

  • Thay thế một đoạn văn bản bằng đoạn khác
  • Xóa dòng
  • Chèn văn bản sau một dòng cụ thể
  • Chèn văn bản trước một dòng nhất định

Điểm khác biệt của sed so với các trình chỉnh sửa khác như Vim, Emacs hay Nano là sed được sử dụng theo cách lập trình, không yêu cầu sự tương tác từ con người.

3. Cách dùng sed

Lệnh sed thường được sử dụng như phiên bản dòng lệnh của tính năng tìm kiếm và thay thế. Điều này rất hữu ích khi bạn muốn tự động hóa các chỉnh sửa văn bản trong các tập lệnh Shell Script

3.1 Cách Sử Dụng Cơ Bản Của sed

Ví dụ, để thay thế từ “assistant” thành “assistant to the” trong tệp manager.txt, bạn có thể dùng lệnh sau:

sed 's/assistant/assistant to the/' manager.txt

Ở đây:

  • s là viết tắt của substitute (thay thế).
  • / là ký tự phân cách (delimiter).
  • assistant là mẫu tìm kiếm (search pattern).
  • assistant to the là chuỗi thay thế (replacement string).

Lưu ý: sed sẽ chỉ thay thế lần xuất hiện đầu tiên trên mỗi dòng trừ khi bạn thêm tùy chọn g để thay thế toàn bộ (global replace).

3.2 Sử Dụng sed Với Tùy Chọn

  • Thay thế không phân biệt chữ hoa chữ thường: Sử dụng i flag:
sed 's/assistant/Assistant/i' manager.txt
  • Chỉnh sửa tệp trực tiếp: Dùng tùy chọn -i để chỉnh sửa trực tiếp nội dung tệp:
sed -i 's/assistant/Assistant/' manager.txt

3.3 Các Tình Huống Sử Dụng Thực Tế

Sed có thể được sử dụng trong nhiều tình huống khác nhau như:

  • Thay thế tên miền trong tệp cấu hình khi triển khai website mới
  • Tự động cập nhật hostname khi di chuyển hoặc sao lưu máy chủ
  • Xóa các dòng trống hoặc dòng chú thích trong tệp cấu hình để dễ đọc hơn

4. Kết Luận

Lệnh sed là một công cụ mạnh mẽ và linh hoạt cho các quản trị viên hệ thống và lập trình viên trong việc tự động hóa và chỉnh sửa văn bản dòng lệnh. Với khả năng kết hợp các lệnh khác nhau, bạn có thể tùy chỉnh dòng lệnh để đạt được kết quả mong muốn. Bằng cách sử dụng sed, bạn có thể tiết kiệm thời gian và tối ưu hóa quy trình làm việc của mình một cách hiệu quả.

Hy vọng hướng dẫn này giúp bạn nắm bắt được các kiến thức cơ bản về sed. Cảm ơn bạn đã tham khảo trên ttnguyen.net

Bài viết liên quan:

Cách debug code Shell Script trên Linux

Khai báo biến trong Shell Script

Nguyễn Tiến Trường

Mình viết về những điều nhỏ nhặt trong cuộc sống, Viết về câu chuyện những ngày không có em