Trong các ví dụ sau, lệnh sed loại bỏ các dòng trong tệp ở một vị trí cụ thể trong tệp
1. Xóa dòng đầu tiên hoặc dòng tiêu đề
Tùy chọn d trong lệnh sed được sử dụng để xóa một dòng. Cú pháp để xóa một dòng là
> sed 'Nd' file
Ở đây N chỉ ra dòng thứ N trong một tệp. Trong ví dụ sau, lệnh sed xóa dòng đầu tiên trong tệp
> sed '1d' file
unix
fedora
debian
ubuntu
2. Xóa dòng cuối cùng hoặc dòng chân trang hoặc dòng giới thiệu
Lệnh sed sau đây được sử dụng để xóa dòng chân trang trong một tệp. $ chỉ ra dòng cuối cùng của một tập tin
> sed '$d' file
linux
unix
fedora
debian
3. Xóa dòng cụ thể
Điều này tương tự như ví dụ đầu tiên. Lệnh sed bên dưới xóa dòng thứ hai trong một tệp
> sed '2d' file
linux
fedora
debian
ubuntu
4. Xóa phạm vi dòng
Lệnh sed có thể được sử dụng để xóa một loạt các dòng. Cú pháp được hiển thị bên dưới
> sed 'm,nd' file
Ở đây m và n là số dòng tối thiểu và tối đa. Lệnh sed xóa các dòng từ m đến n trong tệp. Lệnh sed sau đây xóa các dòng từ 2 đến 4
> sed '2,4d' file
linux
ubuntu
5. Xóa các dòng khác với dòng đầu tiên hoặc dòng tiêu đề
Sử dụng phủ định [. ] với tùy chọn d trong lệnh sed. Lệnh sed sau xóa tất cả các dòng trừ dòng tiêu đề
> sed '1!d' file
linux
6. Xóa các dòng khác với dòng cuối cùng hoặc dòng cuối trang
> sed '$!d' file
ubuntu
7. Xóa các dòng khác với phạm vi đã chỉ định
________số 8Ở đây, lệnh sed xóa các dòng khác với dòng thứ 2, thứ 3 và thứ 4
8. Xóa dòng đầu tiên và dòng cuối cùng
Bạn có thể chỉ định danh sách các dòng bạn muốn xóa trong lệnh sed với dấu chấm phẩy làm dấu phân cách
> sed 'Nd' file0
9. Xóa dòng trống hoặc dòng trống
> sed 'Nd' file1
^$ chỉ ra lệnh sed để xóa các dòng trống. Tuy nhiên, sed này không xóa các dòng có chứa khoảng trắng
Lệnh Sed để xóa dòng – Dựa trên đối sánh mẫu
Trong các ví dụ sau, lệnh sed xóa các dòng trong tệp khớp với mẫu đã cho
10. Xóa các dòng bắt đầu bằng ký tự được chỉ định
> sed 'Nd' file2
^ là chỉ định bắt đầu của dòng. Lệnh sed ở trên xóa tất cả các dòng bắt đầu bằng ký tự 'u'
11. Xóa các dòng kết thúc bằng ký tự đã chỉ định
> sed 'Nd' file3
$ là để chỉ cuối dòng. Lệnh trên xóa tất cả các dòng kết thúc bằng ký tự 'x'
12. Xóa các dòng viết hoa hoặc viết hoa
> sed 'Nd' file4
13. Xóa các dòng có chứa một mẫu
> sed 'Nd' file5
14. Xóa các dòng bắt đầu từ một mẫu cho đến dòng cuối cùng
> sed 'Nd' file6
Ở đây lệnh sed xóa dòng phù hợp với mẫu fedora và cũng xóa tất cả các dòng ở cuối tệp xuất hiện bên cạnh dòng phù hợp này
15. Chỉ xóa dòng cuối cùng nếu nó chứa mẫu
> sed 'Nd' file7
Ở đây $ chỉ ra dòng cuối cùng. Nếu bạn chỉ muốn xóa dòng thứ N nếu nó chứa một mẫu, thì thay cho $ hãy đặt số dòng
Ghi chú. Trong tất cả các ví dụ trên, lệnh sed in nội dung của tệp trên thiết bị đầu cuối unix hoặc linux bằng cách xóa các dòng. Tuy nhiên, lệnh sed không xóa các dòng khỏi tệp nguồn. Để Xóa các dòng khỏi tệp nguồn, hãy sử dụng tùy chọn -i với lệnh sed
> sed 'Nd' file8
Nếu bạn không muốn xóa các dòng khỏi tệp nguồn ban đầu, bạn có thể chuyển hướng đầu ra của lệnh sed sang một tệp khác
Đưa ra một tệp văn bản, đọc nội dung của tệp văn bản đó theo từng dòng và chỉ in những dòng không bắt đầu bằng tiền tố đã xác định. Đồng thời lưu trữ các dòng in đó trong một tệp văn bản khác. Có những cách sau đây mà nhiệm vụ này có thể được thực hiện
Phương pháp 1. Sử dụng vòng lặp và startedwith[]
Trong phương pháp này, chúng tôi đọc nội dung của tệp theo từng dòng. Trong khi đọc, chúng tôi kiểm tra xem dòng có bắt đầu bằng tiền tố đã cho hay không, chúng tôi chỉ cần bỏ qua dòng đó và in nó. Cũng lưu trữ dòng đó trong một tệp văn bản khác
ví dụ 1
Giả sử tệp văn bản mà các dòng sẽ được đọc được đưa ra dưới đây
Tệp văn bản gốc
Python3
> sed '1d' file8
unix
fedora
debian
ubuntu
> sed '1d' file9
unix
fedora
debian
ubuntu
> sed '$d' file0
linux
unix
fedora
debian
> sed '$d' file1
linux
unix
fedora
debian
> sed '$d' file2
linux
unix
fedora
debian
> sed '$d' file3
linux
unix
fedora
debian
> sed '$d' file4
linux
unix
fedora
debian
> sed '$d' file5
linux
unix
fedora
debian
> sed '$d' file6
linux
unix
fedora
debian
> sed '1d' file80
unix
fedora
debian
ubuntu
> sed '1d' file81
unix
fedora
debian
ubuntu
> sed '1d' file82
unix
fedora
debian
ubuntu
> sed '1d' file83
unix
fedora
debian
ubuntu
> sed '1d' file84
unix
fedora
debian
ubuntu
> sed '1d' file85
unix
fedora
debian
ubuntu
> sed '1d' file86
unix
fedora
debian
ubuntu
> sed '$d' file2
linux
unix
fedora
debian
> sed '$d' file3
linux
unix
fedora
debian
> sed '$d' file4
linux
unix
fedora
debian
> sed '1d' file90
unix
fedora
debian
ubuntu
> sed '$d' file6
linux
unix
fedora
debian
> sed '1d' file80
unix
fedora
debian
ubuntu
> sed '1d' file93____182
unix
fedora
debian
ubuntu
> sed '1d' file95
unix
fedora
debian
ubuntu
> sed '1d' file96
unix
fedora
debian
ubuntu
________ 197 ________ 198 ________ 199 ________ 200
> sed '$d' file01
linux
unix
fedora
debian
> sed '$d' file02
linux
unix
fedora
debian
> sed '$d' file03
linux
unix
fedora
debian
> sed '$d' file02
linux
unix
fedora
debian
> sed '$d' file05
linux
unix
fedora
debian
> sed '$d' file06
linux
unix
fedora
debian
> sed '$d' file07
linux
unix
fedora
debian
> sed '$d' file08
linux
unix
fedora
debian
> sed '1d' file861
unix
fedora
debian
ubuntu
> sed '$d' file10
linux
unix
fedora
debian
> sed '1d' file82
unix
fedora
debian
ubuntu
> sed '$d' file2
linux
unix
fedora
debian
> sed '$d' file2
linux
unix
fedora
debian
> sed '1d' file866
unix
fedora
debian
ubuntu
> sed '1d' file867
unix
fedora
debian
ubuntu