Tôi có vài ngàn tệp có dạng:
[Số có 8 chữ số] _ [số tôi muốn] _S60491_I129111.dcm.
Tôi muốn xóa mọi thứ trừ số tôi muốn và sử dụng nó làm tên của nó. Trong Ruby, tôi có thể nhận được giá trị đó bằng biểu thức chính quy /^.*_(\d+)_S60491_I12911.dcm/
, nhưng tôi gặp khó khăn khi cố dịch nó thành sed
biểu thức cho phép tôi thay thế tên tệp đầy đủ cho chỉ số đó giữa các dấu gạch dưới.
Có cách nào sử dụng sed
hoặc các lệnh Bash cơ bản khác để làm những gì tôi muốn không? Nếu nó giúp, số tôi muốn chỉ là một bộ đếm (tức là nó chạy từ 1 đến 2100) và số 8 chữ số tiền tố xảy ra dẫn đến các tệp được liệt kê theo đúng thứ tự (ví dụ: từ tệp 1 đến tệp 2100), Vì vậy, tôi có thể suy nghĩ quá nhiều thứ.
rename
vàprename
xuất hiện một chút khi cố gắng tự tìm kiếm giải pháp, nhưng thật không may là nó dường như không có trên máy chủ tại nơi tôi đang sử dụng cho việc này (có vẻ như đó là phiên bản của Red Hat). Chắc chắn một cái gì đó tôi sẽ tìm đến trên máy tính nhà của tôi mặc dù.