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)
(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
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