Lệnh sed trong linux với các ví dụ dễ hiểu

Lệnh sed trong linux là một công cụ mạnh mẽ để chỉnh sửa văn bản trực tiếp từ dòng lệnh. Nó cho phép bạn tìm kiếm và thay thế các chuỗi ký tự, hoặc thực hiện các thao tác phức tạp hơn. Với lệnh sed, bạn có thể tự động hóa việc chỉnh sửa hàng loạt file một cách dễ dàng và nhanh chóng.

Lệnh sed trong linux là gì?

Lệnh sed trong Linux là một công cụ dòng lệnh mạnh mẽ, cho phép bạn thực hiện các thao tác chỉnh sửa văn bản một cách linh hoạt và hiệu quả. Nó hoạt động bằng cách đọc từng dòng của tệp, áp dụng các lệnh chỉnh sửa được chỉ định, và sau đó xuất kết quả ra màn hình hoặc một tệp mới. Command sed in linux thường được sử dụng để thay thế, xóa, chèn hoặc in các dòng dựa trên các mẫu tìm kiếm cụ thể. Với sed, bạn có thể tự động hóa nhiều tác vụ chỉnh sửa văn bản lặp đi lặp lại, giúp tiết kiệm thời gian và công sức đáng kể. Đây là một công cụ không thể thiếu cho bất kỳ người dùng Linux nào muốn làm việc với văn bản một cách chuyên nghiệp.

Tìm hiểu các kiến thức cơ bản về lệnh sed

Trong bước này, chúng ta sẽ tìm hiểu các kiến thức cơ bản về lệnh sed (stream editor) trong Linux.

Lệnh sed là một công cụ mạnh mẽ để xử lý và chỉnh sửa văn bản, cho phép bạn thực hiện nhiều thao tác trên các tệp văn bản.

Đầu tiên, hãy tạo một tệp văn bản mẫu để làm việc:

echo "This is a sample text file." > sample.txt

Bây giờ, hãy khám phá một số lệnh sed cơ bản:

In toàn bộ tệp

Để in toàn bộ nội dung của tệp, hãy sử dụng lệnh sau:

sed 's/.*/' sample.txt

Ví dụ đầu ra:

This is a sample text file.

In một dòng cụ thể

Để in một dòng cụ thể, hãy sử dụng số dòng với lệnh p:

sed -n '2p' sample.txt

Ví dụ đầu ra:

This is a sample text file.

Thay thế văn bản

Để thay thế văn bản, hãy sử dụng lệnh s theo sau là mẫu và văn bản thay thế:

sed 's/sample/new/' sample.txt

Ví dụ đầu ra:

This is a new text file.

Xóa dòng

Để xóa một dòng cụ thể, hãy sử dụng lệnh d theo sau là số dòng:

sed '2d' sample.txt

Ví dụ đầu ra:

This is a sample text file.

Chèn hoặc thêm văn bản

Để chèn văn bản trước một dòng, hãy sử dụng lệnh i. Để thêm văn bản sau một dòng, hãy sử dụng lệnh a:

sed '2i This is an inserted line.' sample.txt
sed '2a This is an appended line.' sample.txt

Ví dụ đầu ra:

This is a sample text file.
This is an inserted line.
This is a sample text file.
This is an appended line.

Đây chỉ là một vài ví dụ cơ bản về cách sử dụng lệnh sed. Trong bước tiếp theo, chúng ta sẽ khám phá các thao tác sed nâng cao hơn, chẳng hạn như thực hiện thay thế văn bản trong nhiều tệp.

Thực hiện Thay thế Văn bản bằng sed

Trong bước này, chúng ta sẽ khám phá việc thay thế văn bản nâng cao hơn bằng lệnh sed.

Đầu tiên, hãy tạo một tệp mẫu mới với nhiều lần xuất hiện của từ "old":

echo "This is an old text. Replace the old text with new text." > sample.txt

Thay thế tất cả các lần xuất hiện của một từ

Để thay thế tất cả các lần xuất hiện của một từ, hãy sử dụng flag g toàn cục:

sed 's/old/new/g' sample.txt

Ví dụ về đầu ra:

This is an new text. Replace the new text with new text.

Chỉ thay thế lần xuất hiện đầu tiên

Để chỉ thay thế lần xuất hiện đầu tiên, hãy bỏ qua flag g toàn cục:

sed 's/old/new/' sample.txt

Ví dụ về đầu ra:

This is an new text. Replace the old text with new text.

Thay thế trên một dòng cụ thể

Để thay thế văn bản trên một dòng cụ thể, hãy sử dụng số dòng trước lệnh s:

sed '1s/old/new/' sample.txt

Ví dụ về đầu ra:

This is an new text. Replace the old text with new text.

Thay thế bằng cách sử dụng regular expressions

Sed cũng hỗ trợ regular expressions. Để thay thế văn bản bằng regular expression, sử dụng cú pháp \1 để tham chiếu đến các nhóm đã bắt:

sed 's/\(This.*\)old\(.*\)/\1new\2/' sample.txt

Ví dụ về đầu ra:

This is an new text. Replace the new text with new text.

Thay thế trong nhiều tệp

Để thay thế văn bản trong nhiều tệp, hãy truyền tên tệp làm đối số cho lệnh sed:

sed 's/old/new/g' sample.txt another_file.txt

Điều này sẽ thực hiện thay thế văn bản trong cả sample.txtanother_file.txt.

Trong bước tiếp theo, chúng ta sẽ tìm hiểu cách chỉnh sửa nhiều tệp bằng lệnh sed.

Chỉnh sửa nhiều tệp tin với sed

Trong bước này, chúng ta sẽ học cách sử dụng lệnh sed để chỉnh sửa nhiều tệp tin cùng một lúc.

Đầu tiên, hãy tạo hai tệp tin văn bản mẫu để thực hành các thao tác chỉnh sửa:

echo "This is the first file." > file1.txt
echo "This is the second file." > file2.txt

Thay thế văn bản trong nhiều tệp tin

Để thay thế văn bản trong nhiều tệp tin, chỉ cần truyền tên các tệp tin làm đối số cho lệnh sed.

sed 's/first/updated/g' file1.txt file2.txt

Ví dụ về kết quả đầu ra:

This is the updated file.
This is the second file.

Chỉnh sửa trực tiếp trên tệp tin

Theo mặc định, sed in kết quả đã sửa đổi ra console. Để chỉnh sửa trực tiếp trên tệp tin, sử dụng tùy chọn -i.

sed -i 's/second/new/g' file1.txt file2.txt

Bây giờ, các tệp tin file1.txtfile2.txt đã được sửa đổi trực tiếp trên hệ thống.

Sử dụng tệp tin sao lưu

Nếu bạn muốn giữ bản sao lưu của các tệp tin gốc, hãy sử dụng tùy chọn -i với phần mở rộng sao lưu.

sed -i.bak 's/new/updated/g' file1.txt file2.txt

Thao tác này sẽ tạo các tệp tin sao lưu file1.txt.bakfile2.txt.bak chứa nội dung gốc.

Chỉnh sửa tệp tin một cách đệ quy

Để chỉnh sửa tệp tin một cách đệ quy trong một thư mục, bạn có thể sử dụng lệnh find cùng với sed.

find . -type f -name "*.txt" -exec sed -i 's/updated/final/g' {} \;

Lệnh này sẽ thay thế tất cả các lần xuất hiện của "updated" bằng "final" trong tất cả các tệp tin .txt.

Việc thay thế được thực hiện trong thư mục hiện tại và các thư mục con của nó.

Với các kỹ thuật này, bạn có thể chỉnh sửa nhiều tệp tin một cách hiệu quả bằng lệnh sed.

Điều này đặc biệt hữu ích khi bạn cần thực hiện thay thế hoặc sửa đổi văn bản trên quy mô lớn.

Kết luận cho linux sed command

Vậy là chúng ta đã cùng nhau khám phá những điều thú vị về lệnh linux sed command trong Linux rồi! Hy vọng qua bài viết này, bạn đã có cái nhìn tổng quan và hiểu rõ hơn về sức mạnh của nó. Sed không chỉ đơn thuần là một công cụ chỉnh sửa văn bản, mà còn là một trợ thủ đắc lực giúp bạn tự động hóa nhiều tác vụ phức tạp. Hãy thử nghiệm và áp dụng những kiến thức này vào công việc hàng ngày để tiết kiệm thời gian và nâng cao hiệu quả. Đừng ngại khám phá thêm các tùy chọn nâng cao của sed để làm chủ công cụ này một cách hoàn toàn. Chúc bạn thành công trên con đường chinh phục Linux và làm chủ những dòng lệnh!

Last Updated : 14/10/2025