Tôi đang sử dụng sed để lọc danh sách tệp. Tôi có một danh sách các thư mục được sắp xếp và tôi muốn lấy tất cả các dòng sau một thư mục cụ thể. Để thực hiện tác vụ này, tôi đang sử dụng giải pháp được mô tả here hoạt động khá tốt với bất kỳ đầu vào nào tôi đã thử nhưng nó không hoạt động khi kết quả khớp trên dòng đầu tiên. Trong trường hợp đó sed sẽ loại bỏ tất cả các dòng đầu vàoXóa tất cả các dòng trước khi khớp với sed
Ở đây nó là một ví dụ:
(ssh) [email protected] : ~
[0] % ls -1/
bin
boot
...
sys
tmp
usr
var
vmlinuz
(ssh) [email protected] : ~
[0] % ls -1/| sed '1,/tmp/d'
usr
var
vmlinuz
(ssh) [email protected] : ~
[0] % ls -1/| sed '1,/^bin$/d'
# sed will delete all lines from the input stream
Làm thế nào tôi nên thay đổi lệnh để xem xét cũng là trường hợp giới hạn khi dòng đầu tiên được kết hợp bởi regexp?
BTW sed '1,1d'
hoạt động chính xác và chỉ xóa dòng đầu tiên.
Cảm ơn bạn đã nhận xét. Sửa chữa và thêm vài giải pháp khác nữa. – jm666