bash, tệp, đổi tên tệp, chuyển đổi vị trí

Dec 22 2020

Cách đổi tên

sluno-20201027-call-metroua-status.mp4
sluno-20201103-call-deriva.mp4
sluno-20201103-call-metroua-status.mp4
sluno-20201105-call-makrocz.mp4
sluno-20201105-call-metroua-testcall.mp4
sluno-20201105-call-sluno-ggtabak.mp4
sluno-20201110-call-makrocz.mp4
sluno-20201110-call-metroua-status.mp4
sluno-20201110-call-sluno-utccz.mp4

đến

sluno-call-metroua-status-20201027.mp4
sluno-call-deriva-20201103.mp4
sluno-call-metroua-status-20201103.mp4
sluno-call-makrocz-20201105.mp4
...

Chỉ cần di chuyển ngày / chuỗi trên vị trí 7-14đến cuối tên của tệp.

Cảm ơn.

Trả lời

7 bac0n Dec 22 2020 at 22:04

mmv hoạt động tốt để đổi tên tệp không phức tạp .

mmv '*-*-*-*.mp4' '#1-#3-#4-#2.mp4'

Cũng có thể hữu ích nếu có thêm một số điểm tham chiếu để đảm bảo không thay đổi tên trên một thứ khác, đặc biệt là khi có thể có các tệp khác trong cùng một thư mục.

mmv 'sluno-[0-9]*-call-[a-z]*.mp4' 'sluno-call-#3#4-#1#2.mp4'
             ^  ^        ^  ^
             1  2        3  4

sluno-20201027-call-metroua-status.mp4
      ^-------      ^-------------
      1   2         3       4

Nếu tôi phải làm điều đó với mức tối thiểu trần, mvbashtôi sẽ sử dụng đối sánh vòng lặp for và bashBRE nội sẵn.

for i in *.mp4; do \
    [[ $i =~ ^sluno-(.*)-call-(.*).mp4 ]] && \ mv -- "$i" "sluno-call-${BASH_REMATCH[2]}-${BASH_REMATCH[1]}.mp4"; \
done
4 pLumo Dec 22 2020 at 20:46

Sử dụng rename:

rename -n 's/^(.*?)-(.*?)-(.*?)(\.mp4)$/$1-$3-$2$4/' *.mp4

Loại bỏ -nnếu bạn hài lòng với đầu ra.

Để được giải thích, hãy truy cập trang này .

JohnP Dec 30 2020 at 01:47

Một lựa chọn khác:

$ qmv {pattern}

sẽ thả 2 cột tên tệp vào trình soạn thảo mà bạn chọn.

Sửa đổi cột bên phải để có tên tệp bạn muốn.

Cột bên trái là tên gốc. Không thể thay đổi cột bắt đầu của nhóm bên phải, vì vậy việc tự động bọc có thể cản trở.

Dưới bàn tay của một chuyên gia với từng trình chỉnh sửa, điều này có thể rất nhanh, đặc biệt là đối với cột vim và chế độ hình ảnh.

Nói chung, tôi sử dụng đổi tên, nhưng đối với các nhu cầu phức tạp, nhìn thấy tên chính xác trong trình chỉnh sửa là tốt.