Một câu hỏi khác cho các chuyên gia về sed.Trích xuất các số từ một chuỗi bằng cách sử dụng các biểu thức chính quy và thông thường
Tôi có một chuỗi đại diện cho một tên đường dẫn sẽ có hai số trong đó. Một ví dụ là:
./pentaray_run2/Trace_220560.dat
tôi cần phải trích xuất các thứ hai của những con số - tức là 220560
Tôi có (với một số sự giúp đỡ từ các diễn đàn) đã có thể trích xuất tất cả các số với nhau (tức là 2.220.560) với :
sed "s/[^0-9]//g"
hoặc trích lục chỉ số đầu tiên với:
sed -r 's|^([^.]+).*$|\1|; s|^[^0-9]*([0-9]+).*$|\1|'
Nhưng những gì tôi afte r là số thứ hai !! Bất kỳ giúp đỡ nhiều đánh giá cao.
PS số mà tôi theo sau luôn là số thứ hai trong chuỗi.
Công việc tuyệt vời là điều trị. Tôi đoán _ trong đó có nghĩa là để tìm những con số chỉ sau dấu gạch dưới? Trong trường hợp này tôi luôn luôn có thể mong đợi một gạch dưới để điều này sẽ làm việc. Mà thực tế bit của biểu hiện nào đó là nó. * _ Stackoverflow thực sự là một nguồn tài nguyên tuyệt vời - Tôi đã được khó hiểu tại đây trong nhiều giờ. Vì lợi ích bạn có nghĩ rằng có một cách để sử dụng \ 1 ở cuối - có lẽ trích xuất tất cả các con số (các chữ số tiếp giáp) làm nền và yêu cầu số thứ hai. Điều này có thể hữu ích cho tôi và những người khác trong tương lai? – Steven