Các cờ hoạt động cùng nhau theo cách ngược lại với những gì bạn mong đợi. Các tài liệu của /elà , đối với các bản ghi:
Lệnh này cho phép một đầu vào đường ống từ lệnh shell vào không gian mẫu. Nếu thay thế được thực hiện, lệnh được tìm thấy trong không gian mẫu được thực thi và không gian mẫu được thay thế bằng đầu ra của nó. Một dòng mới kéo dài bị đàn áp; kết quả không được xác định nếu lệnh được thực thi có chứa ký tự nul. Đây là một phần mở rộng GNU sed.
Đó là một chút quanh co viết. Điều đó có nghĩa là, sau khi hoàn thành một s///lệnh cho dòng này, nếu có thay đổi, dòng (mới) được thực thi như một lệnh và đầu ra của nó được sử dụng làm thay thế cho dòng này.
Vì vậy, đối với lệnh đã cho của bạn:
echo AAA | sed -r 's/A/echo B/ge'
nó đầu tiên thay thế từng Acó echo B, và sau đó thực hiện kết quả như một lệnh. Nó có (nói đại khái) có tác dụng tương tự như:
echo AAA | sed -r 's/A/echo B/g' | sh
GNU sedkhông hỗ trợ trực tiếp chế độ bạn muốn, mặc dù bạn có thể giả mạo nó với một tập lệnh phức tạp hơn nếu muốn. Ngoài ra, công cụ /esửa đổi của Perl cho slệnh của nó có hành vi bạn đang tìm kiếm, nhưng thay vào đó với các biểu thức Perl.