Tôi muốn viết một shellscript sẽ lặp qua tất cả các tập tin trong một thư mục và echo "put $ {filename}". ai đó có thể chỉ cho tôi phương hướng đúng không?Shellscript Looping Thông qua tất cả các tập tin trong một thư mục
Trả lời
for filename in *; do echo "put ${filename}"; done
Nếu thư mục hiện tại bị trống, kết quả đầu ra "đặt *" thay vì xuất hiện chính xác không có gì. Nó có thể được sửa? – JWWalker
đệ quy, bao gồm các tệp trong thư mục con?
find dir -type f -exec echo "put {}" \;
chỉ các tệp trong thư mục đó?
find dir -maxdepth 1 -type f -exec echo "put {}" \;
for file in *; do
echo "put $file"
done
Hoặc, nếu bạn muốn bao gồm các thư mục con:
find . -type f -exec echo put {} \;
Nếu bạn muốn bao gồm các thư mục mình, đưa ra các phần -type f
.
Thêm một lựa chọn sử dụng ls
và sed
:
$ ls -1 <dir> | sed -e 's/^/put /'
và sử dụng ls
và xargs
:
$ ls -1 <dir> | xargs -n1 -i%f echo 'put %f'
+1, nhưng -1 là không cần thiết và bạn có thể làm sed -e 's/^/put /' –
@WilliamPursell Cảm ơn, tôi đã cập nhật phản hồi của tôi. Bằng cách nào đó, tôi hiểu lầm và làm niềng răng và đồng đô la ký một phần của giải pháp. Ngoài ra, tôi còn một giải pháp khác với 'xargs' và' echo', nhưng giải pháp 'sed' vẫn còn ngắn gọn hơn. – jcollado
này sẽ làm việc cũng đệ quy nếu bạn có bất kỳ thư mục con và các tập tin bên trong chúng:
find . -type f|awk -F"/" '{print "put ",$NF}'
Nếu y Bạn không có bất kỳ tệp nào, sau đó thay vì in * chúng tôi có thể thực hiện việc này.
format=*.txt
for i in $format;
do
if [[ "$i" == "$format" ]]
then
echo "No Files"
else
echo "file name $i"
fi
done
- 1. Xóa tất cả các tập tin trong một thư mục
- 2. Sao chép tất cả các tập tin trong thư mục
- 3. Diff Một thư mục đệ quy, bỏ qua tất cả các tập tin nhị phân:
- 4. Looping thông qua các mục lặp lại
- 5. bỏ qua tập tin nhất định trong tất cả các thư mục sử dụng một tập tin duy nhất .gitignore
- 6. Lặp qua các tập tin trong một thư mục
- 7. Scala - Iterator trên tất cả các dòng trong các tập tin trong một thư mục
- 8. Tìm tất cả các tập tin trong thư mục không phải là thư mục tự
- 9. Bash scripting, lặp qua tập tin trong thư mục không
- 10. Lấy danh sách tất cả các tập tin bên trong một thư mục trong vb.net
- 11. Làm thế nào để tải tất cả các tập tin trong một thư mục với XNA?
- 12. Xóa tất cả các tập tin trong một thư mục bằng Python
- 13. gmake biên dịch tất cả các tập tin trong một thư mục
- 14. Looping thông qua một cột trong R
- 15. Nén tất cả mọi thứ trong thư mục với 7z trừ một tập tin hoặc một loại tập tin
- 16. GitHub API: Fetch tất cả các thư mục và tập tin trong đơn GET Yêu cầu
- 17. Hủy bỏ tất cả các file trong một thư mục
- 18. cách lấy tất cả các tập tin trong một thư mục trong ipad sử dụng mục tiêu c
- 19. looping thông qua mảng mảng
- 20. Tập tin bó Windows - Kết hợp tất cả các tệp trong thư mục con
- 21. Looping thông qua một regex thay thế
- 22. Mở tất cả các tệp trong một thư mục
- 23. iPhone SDK Xcode - Cách lấy tất cả các tên tập tin trong thư mục tài liệu
- 24. Looping thông qua các yếu tố trong một mảng ngược
- 25. Tập lệnh Bash để thực hiện lệnh trên tất cả các tệp trong một thư mục
- 26. Đọc các tập tin từ một thư mục trong Scala
- 27. Git Bỏ qua tất cả mọi thứ trong một thư mục, ngoại trừ các thư mục con
- 28. Python winreg looping thông qua các khóa phụ
- 29. Đặt tiêu đề HTTP cho tất cả các tập lệnh PHP qua .htaccess tập tin
- 30. grep trong tất cả các thư mục
Bạn đã thử gì? Phần nào của câu lệnh 'for' và toán tử' * 'gây nhầm lẫn cho bạn? Bạn có thể cụ thể hơn về những gì bạn biết và những gì bạn không biết về vỏ không? –
Chỉ cần đi qua này - một cảnh báo cho bất cứ ai sử dụng này như là một tài liệu tham khảo - câu trả lời không xử lý tên tập tin với không gian đúng ... tham khảo https://stackoverflow.com/questions/7039130/iterate-over-list- của các tập tin-với-không gian cho một giải pháp tốt hơn !!! – blackghost