nhanh Bối cảnh:Bash Đối-Vòng trên Thư mục
$ ls src
file1 file2 dir1 dir2 dir3
Script:
#!/bin/bash
for i in src/* ; do
if [ -d "$i" ]; then
echo "$i"
fi
done
Output:
src/dir1
src/dir2
src/dir3
Tuy nhiên, tôi muốn nó đọc:
dir1
dir2
dir3
Bây giờ tôi nhận ra tôi có thể sed/awk đầu ra để loại bỏ "src /" tuy nhiên tôi tò mò muốn biết nếu có một cách tốt hơn để đi về việc này. Có lẽ sử dụng một tìm + while-loop thay thế.
Tôi thấy bạn đã cập nhật bài đăng của mình để đọc * basename * thay vì * dirname * ding, ding, ding CORRECT !!! : D Cảm ơn, tôi sẽ chấp nhận câu trả lời của bạn – BassKozz
Đã học được điều này nugget chỉ 2 ngày trước từ một cuốn sách O'Rielly. Có thể đã tiết kiệm cho tôi giờ của tomfoolery sed nếu tôi biết nó năm trước đây. – Synesso