Cách sử dụng Sed trong Linux

Sed là viết tắt của trình chỉnh sửa luồng. Nó là một trình soạn thảo dựa trên dòng lệnh cho Linux. Việc sử dụng sed phổ biến là để chỉnh sửa (các) tệp như một phần của tập lệnh tự động hóa trong Linux, vì các trình chỉnh sửa thông thường yêu cầu nhập liệu của người dùng tích cực và không thể chỉnh sửa tệp bên ngoài màn hình trình chỉnh sửa. Sed được sử dụng phổ biến nhất để thực hiện tìm và thay thế từ dòng lệnh.

Loại trình soạn thảo văn bản này cũng có thể được phân loại là trình soạn thảo văn bản không tương tác.

Hãy để chúng tôi xem một số tùy chọn phổ biến để chỉnh sửa tệp bằng Sed. Chúng tôi sẽ lấy tệp sau làm ví dụ:

$: cat test.txt Một con chó nâu nhanh nhẹn nhảy qua con mèo lười biếng. Hệ điều hành Linux. Khu rừng gần chỗ tôi ở có mèo cũng như sói. 

Tìm kiếm và Thay thế

Để tìm kiếm một chuỗi trong tệp và thay thế bằng một chuỗi khác, hãy chạy:

sed -i "s / cat / fox / g" test.txt

Đây, -tôi cờ hướng dẫn sed ghi các thay đổi vào tệp. Nếu không có cờ này, quyến rũ sẽ chỉ hiển thị tệp có chuỗi đã thay đổi.

Trong phần trích dẫn, chúng tôi có s / cat / fox / g. Các S dành cho lệnh tìm kiếm và thay thế quyến rũ. Sau đó, chúng tôi có chuỗi được tìm kiếm, đó là con mèo. Sau đó, chuỗi để thay thế nó bằng, tức là cáo. Cuối cùng, chúng tôi có tùy chọn g, hướng dẫn quyến rũ để thay thế tất cả các lần xuất hiện trên tất cả các dòng của tệp. Không có g, sed sẽ chỉ thay thế lần xuất hiện đầu tiên của con mèo trên mọi dòng.

Regex cũng có thể được sử dụng ở đây.

sed -i "s / f [a-z] * \ ./ cat \ ./ g"

Chèn

Để chèn văn bản trước một dòng với một chuỗi đã khớp, hãy sử dụng:

sed -i "/ cat / i Bắt đầu:" test.txt

Nơi đây, con mèo là chuỗi được tìm kiếm và Khởi đầu: là chuỗi để nhập trước dòng mà chuỗi được tìm kiếm được tìm thấy.

Tương tự, để chèn văn bản sau một dòng, hãy sử dụng:

sed -i "/ cáo / a Kết thúc." test.txt

Xóa bỏ

Để xóa một dòng có chứa một chuỗi con, hãy sử dụng:

sed -i "/ Linux / d" test.txt

Để xóa một dòng có số dòng, ví dụ. dòng đầu tiên, sử dụng:

sed -i '1d' test.txt

Kết hợp nhiều chức năng

Để kết hợp nhiều chức năng, ví dụ. tìm kiếm và thay thế, xóa, trong một lệnh, -e cờ có thể được sử dụng.

sed -i -e "s / fox / cat / g" -e '2d' test.txt

? Chúc mừng!