Cách đổi tên tập tin hàng loạt trong Linux


16/3/16      
Thỉnh thoảng, chúng ta cần tổ chức lại một nhóm các tập tin bằng cách đổi tên chúng .
Để đổi tên các tập có đuôi *.txt sang *.bak 
(ví dụ: để đổi tên ham.txt thành ham.bak)


for f in *.txt; do mv "$f" "${f%.txt}.bak"; done
Để xóa chuỗi ‘new-’ trong new-*(ví du: đổi new-ham.txt thành ham.txt)


for f in new-*; do mv "$f" "${f#new-}"; done

${variable%pattern}  ${variable#pattern}



Biểu tượng vui, ${f%.txt} có hiệu quả để so sách và xóa trong các thao tác chuỗi:
Nếu mẫu ‘.txt’ khớp với phần cuối của biến $f, nó sẽ xóa phần khớp (đó là ‘.txt‘) và trả lại phần còn lại. Hãy thử như sau:


f=new-ham.txt      # define $f as 'new-ham.txt'
echo ${f%.txt}     # display 'new-ham'
Thế còn ${f#new-}? Nó có tác dụng tương tự nhưng nó so khớp với đoạn đầu của biến.


echo ${f#new-}     # display 'ham.txt'

Không có nhận xét nào:

Đăng nhận xét

Giới thiệu

Website hướng dẫn các thủ thuật, cách cài đặt, cấu hình các phần mềm. Các thông tin công nghệ và hướng dẫn lập trình...

facebook.com/dung.phamtrung.9

phamtrungdung@gmail.com

Copyright © 2016. Cách cài đặt. Ghi rõ nguồn khi lấy tin từ trang này