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 s
lệ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 c
lệ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ó ở đó.