Tôi đang học sed. Mọi thứ dường như sẽ ổn cho đến khi tôi bắt gặp N (đa dòng tiếp theo). Tôi đã tạo tệp này (guide.txt) cho mục đích thực hành / hiểu / bối cảnh. Đây là nội dung của tập tin nói ...
This guide is meant to walk you through a day as a Network
Administrator. By the end, hopefully you will be better
equipped to perform your duties as a Network Administrator
and maybe even enjoy being a Network Administrator that much more.
Network Administrator
Network Administrator
I'm a Network Administrator
Vì vậy, mục tiêu của tôi là thay thế TẤT CẢ các phiên bản của "Quản trị viên mạng" bằng "Người dùng hệ thống". Vì phiên bản đầu tiên của "Quản trị viên mạng" được phân tách bằng một dòng mới (\ n), tôi cần toán tử tiếp theo nhiều dòng (N) để nối thêm dòng bắt đầu bằng "Quản trị viên" với dòng trước kết thúc bằng "Mạng \ n" . Không vấn đề gì. Nhưng tôi cũng muốn bắt tất cả các trường hợp một dòng "Quản trị viên mạng" khác.
Từ nghiên cứu của tôi, tôi đã học được rằng tôi sẽ cần hai lệnh thay thế; một cho chuỗi phân tách dòng mới và một cho các chuỗi khác. Ngoài ra, có một số jive xảy ra vì dòng cuối cùng chứa kết quả thay thế và đa dòng tiếp theo. Vì vậy, tôi tạo ra ...
$ sed '
> s/Network Administrator/System User/
> N
> s/Network\nAdministrator/System\nUser/
> ' guide.txt
Điều này trả về những kết quả này ...
This guide is meant to walk you through a day as a System
User. By the end, hopefully you will be better
equipped to perform your duties as a System User
and maybe even enjoy being a Network Administrator that much more.
System User
Network Administrator
I'm a System User
Tôi nghĩ rằng sự thay thế một dòng sẽ bắt được tất cả các trường hợp "bình thường" của "Quản trị viên mạng" và trao đổi nó thành "Người dùng hệ thống", trong khi câu lệnh nhiều dòng sẽ hoạt động kỳ diệu trên trường hợp được phân tách dòng mới, nhưng như bạn Có thể thấy nó trở lại, những gì tôi xem xét, kết quả bất ngờ.
Sau một vài lần nghịch ngợm, tôi đáp xuống ...
$ sed '
> s/Network Administrator/System User/
> N
> s/Network\nAdministrator/System\nUser/
> s/Network Administrator/System User/
> ' guide.txt
Và voilà, tôi nhận được đầu ra mong muốn của ...
This guide is meant to walk you through a day as a System
User. By the end, hopefully you will be better
equipped to perform your duties as a System User
and maybe even enjoy being a System User that much more.
System User
System User
I'm a System User
Tại sao điều này hoạt động và kịch bản sed ban đầu không? Tôi thực sự muốn hiểu điều này.
Cảm ơn trước sự giúp đỡ nào.