Câu trả lời:
Nếu bạn khớp với một chuỗi con của toàn bộ dòng, bạn có thể sử dụng slệnh sed với regex để dọn dẹp phần còn lại của dòng:
sed -i 's/^.*foo.*$/another string/' myfile.txt
hoặc sử dụng clệnh để thay thế dòng khớp trong một lần:
sed -i '/foo/ { c \
another string
}' myfile.txt
Nếu bạn không muốn gõ các lệnh đa dòng tại dấu nhắc, bạn có thể đặt nó trong một tập lệnh thay thế:
$ cat foo.sed
/foo/ { c \
another string
}
$ sed -i -f foo.sed myfile.txt
}'nằm trên một dòng riêng biệt từ another string: thay thế là tất cả mọi thứ trên dòng thứ hai đó, bao gồm cả }nếu bạn đặt nó ở đó.