Tôi muốn thay thế một chuỗi bằng ký tự đại diện nhưng nó không hoạt động.sử dụng SED với ký tự đại diện
Chuỗi trông giống như "some-string-8"
tôi đã viết
sed -i 's/string-*/string-0/g' file.txt
nhưng sản lượng là
some-string-08
Tôi muốn thay thế một chuỗi bằng ký tự đại diện nhưng nó không hoạt động.sử dụng SED với ký tự đại diện
Chuỗi trông giống như "some-string-8"
tôi đã viết
sed -i 's/string-*/string-0/g' file.txt
nhưng sản lượng là
some-string-08
Các dấu hoa thị (*) có nghĩa là "zero hoặc nhiều mục trước đó ".
Nếu bạn muốn kết hợp bất kỳ ký tự đơn sử dụng
sed -i 's/string-./string-0/g' file.txt
Nếu bạn muốn kết hợp bất kỳ chuỗi (tức là bất cứ ký tự đơn zero hoặc nhiều lần) sử dụng
sed -i 's/string-.*/string-0/g' file.txt
Vì vậy, khái niệm về "ký tự đại diện" trong Cụm từ thông dụng hoạt động hơi khác một chút. Để khớp với "bất kỳ ký tự nào", bạn sẽ sử dụng "." Công cụ sửa đổi "*" có nghĩa là khớp với bất kỳ số lần nào.
tốt, có thể câu hỏi của tôi chưa hoàn thành .... lệnh của bạn hoạt động cho tính năng này. Tuy nhiên nếu tôi có 'some-string-8 -x --command acommand', đầu ra của việc thực hiện lệnh đó là' some-string-0'. nó sẽ xóa tất cả các ký tự sau đó. Tôi muốn 'some-string-0 -x --command acommand' – mahmood
ok lệnh đầu tiên là những gì tôi muốn – mahmood
nếu bạn muốn sử dụng ký tự đại diện trong chuỗi thay thế? ví dụ: thay thế 'AAA. * BBB' bằng 'CCC. * DDD' – user2561747