Tôi có một thư mục với khoảng 1.700 tệp. Chúng được đặt tên là 1.txt
hoặc 1497.txt
, v.v. Tôi muốn đổi tên tất cả các tệp sao cho tất cả tên tệp dài bốn chữ số.Tập lệnh shell Linux để thêm số 0 đứng đầu vào tên tệp
I.e., 23.txt
trở thành 0023.txt
.
Kịch bản lệnh shell sẽ thực hiện điều này là gì? Hoặc câu hỏi liên quan: Làm cách nào để sử dụng grep để chỉ khớp các dòng có chứa \d.txt
(tức là, một chữ số, sau đó một dấu chấm, sau đó là các chữ cái txt
)?
Dưới đây là những gì tôi có cho đến nay:
for a in [command i need help with]
do
mv $a 000$a
done
Về cơ bản, chạy mà ba lần, với các lệnh đó để tìm một chữ số, hai chữ số, và ba tên tập tin chữ số (với số lượng các zeros ban đầu đã thay đổi).
Bạn nên thẻ này với vỏ bạn đang sử dụng – meagar
trùng lặp có thể xảy ra của [Bash script để đệm các tên tập tin] (http://stackoverflow.com/questions/55754/bash-script-to-pad-file-names) –
@CiroSantilli, tình cờ, tôi đã có ai đó gần đây đẩy lùi về một dupe bị đóng cửa với điều đó logic cho các số pad đầu và logic đến các số pad sau này trong một tên khác một chút. (Do đó, https://stackoverflow.com/questions/46993470/padding-filenames-with-zeros-in-bash hiện đã gắn cờ một câu trả lời của câu trả lời này và * không * một phần của câu trả lời đó). –