Xóa tất cả các dòng chứa ký tự a trong một tệp và ghi nó vào một tệp khác python

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' file
0

9. Xóa dòng trống hoặc dòng trống

> sed 'Nd' file
1

^$ 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' file
2

^ 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' file
3

$ 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' file
4

13. Xóa các dòng có chứa một mẫu

> sed 'Nd' file
5

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' file
6

Ở đâ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' file
7

Ở đâ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' file
8

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

Xóa tất cả các dòng chứa ký tự a trong một tệp và ghi nó vào một tệp khác python

Tệp văn bản gốc

Python3




> sed '1d' file
unix
fedora
debian
ubuntu
8

> sed '1d' file
unix
fedora
debian
ubuntu
9

> sed '$d' file
linux
unix
fedora
debian
0

> sed '$d' file
linux
unix
fedora
debian
1
> sed '$d' file
linux
unix
fedora
debian
2
> sed '$d' file
linux
unix
fedora
debian
3
> sed '$d' file
linux
unix
fedora
debian
4
> sed '$d' file
linux
unix
fedora
debian
5
> sed '$d' file
linux
unix
fedora
debian
6

> sed '1d' file
unix
fedora
debian
ubuntu
80
> sed '1d' file
unix
fedora
debian
ubuntu
81
> sed '1d' file
unix
fedora
debian
ubuntu
82

 

> sed '1d' file
unix
fedora
debian
ubuntu
83

> sed '1d' file
unix
fedora
debian
ubuntu
84

> sed '1d' file
unix
fedora
debian
ubuntu
85

> sed '1d' file
unix
fedora
debian
ubuntu
86
> sed '$d' file
linux
unix
fedora
debian
2
> sed '$d' file
linux
unix
fedora
debian
3
> sed '$d' file
linux
unix
fedora
debian
4
> sed '1d' file
unix
fedora
debian
ubuntu
90
> sed '$d' file
linux
unix
fedora
debian
6

> sed '1d' file
unix
fedora
debian
ubuntu
80
> sed '1d' file
unix
fedora
debian
ubuntu
93____182

 

> sed '1d' file
unix
fedora
debian
ubuntu
95

> sed '1d' file
unix
fedora
debian
ubuntu
96

________ 197 ________ 198 ________ 199 ________ 200

> sed '$d' file
linux
unix
fedora
debian
01

> sed '$d' file
linux
unix
fedora
debian
02
> sed '$d' file
linux
unix
fedora
debian
03

> sed '$d' file
linux
unix
fedora
debian
02
> sed '$d' file
linux
unix
fedora
debian
05

> sed '$d' file
linux
unix
fedora
debian
06
> sed '$d' file
linux
unix
fedora
debian
07
> sed '$d' file
linux
unix
fedora
debian
08
> sed '1d' file
unix
fedora
debian
ubuntu
861
> sed '$d' file
linux
unix
fedora
debian
10
> sed '1d' file
unix
fedora
debian
ubuntu
82
> sed '$d' file
linux
unix
fedora
debian
2
> sed '$d' file
linux
unix
fedora
debian
2
> sed '1d' file
unix
fedora
debian
ubuntu
866
> sed '1d' file
unix
fedora
debian
ubuntu
867