Tôi đã cố gắng để trích xuất một số như đưa ra dưới đây nhưng không được in trên màn hình:sed nhóm giải nén các chữ số
echo "This is an example: 65 apples" | sed -n 's/.*\([0-9]*\) apples/\1/p'
Tuy nhiên, tôi nhận được '65', nếu cả hai chữ số được kết hợp riêng biệt như đưa ra dưới đây:
echo "This is an example: 65 apples" | sed -n 's/.*\([0-9][0-9]\) apples/\1/p'
65
Làm cách nào tôi có thể khớp số để không biết số chữ số trong một số được trích xuất ví dụ nó có thể là 2344 thay cho 65?
+1, nhưng hãy cẩn thận rằng không phải tất cả sed hỗ trợ -r và do đó không thể sử dụng '+ 'sửa đổi và phải thoát khỏi các parens. –
Tại sao một regex như '[([0-9] *) táo]' (http://sprunge.us/feGV) không hoạt động trong sed? Nó hoạt động tốt trong python. –
vì vậy ...^[^ 0-9] * tương ứng với mọi thứ không phải chữ số ở đầu dòng. [0-9] + ít nhất một chữ số trở lên, phải không? – baltoro