Giả sử tôi có 'abbc' chuỗi và tôi muốn thay thế:Làm thế nào để thay thế nhiều mẫu cùng một lúc bằng sed?
- ab -> bc
- bc -> ab
Nếu tôi thử hai Thay thế kết quả là không phải những gì tôi muốn :
echo 'abbc' | sed 's/ab/bc/g;s/bc/ab/g'
abab
Vậy tôi có thể sử dụng lệnh sed nào để thay thế như dưới đây?
echo abbc | sed SED_COMMAND
bcab
EDIT: Trên thực tế các văn bản có thể có nhiều hơn 2 mẫu và tôi không biết có bao nhiêu Thay thế tôi sẽ cần. Vì có một câu trả lời nói rằng sed
là một trình soạn thảo luồng và các thay thế của nó là tham lam, tôi nghĩ rằng tôi sẽ cần phải sử dụng một số ngôn ngữ kịch bản cho điều đó.
Bạn có cần thực hiện nhiều thay thế trên cùng một dòng không? Nếu không chỉ cần thả cờ 'g' từ cả hai lệnh' s /// 'này và nó sẽ hoạt động. –
Có, cùng một dòng. – DaniloNC
Bạn đã bỏ lỡ câu hỏi của mình. Tôi có nghĩa là bạn cần phải thực hiện * mỗi * thay thế nhiều hơn một lần trên cùng một dòng. Có nhiều hơn một kết quả phù hợp cho 'ab' * hoặc *' bc' trong đầu vào gốc hay không. –