ฉันควร echo เฉพาะชื่อของไฟล์หรือไดเรกทอรีที่มีโครงสร้างนี้:
ls -Al | while read string
do
...
done
ls -Al
ผลลัพธ์:
drwxr-xr-x 12 s162103 studs 12 march 28 12:49 personal domain
drwxr-xr-x 2 s162103 studs 3 march 28 22:32 public_html
drwxr-xr-x 7 s162103 studs 8 march 28 13:59 WebApplication1
เช่นถ้าฉันลอง:
ls -Al | while read string
do
echo "$string" | awk '{print $9}
done
จากนั้นให้ส่งออกเฉพาะไฟล์และไดเรกทอรีที่ไม่มีช่องว่าง หากไฟล์หรือไดเรกทอรีมีช่องว่างเช่น "โดเมนส่วนบุคคล" มันจะเป็นเพียงคำว่า "ส่วนบุคคล"
ฉันต้องการทางออกที่ง่ายมาก อาจมีทางออกที่ดีกว่า awk
ls -Al | while
ที่พยายามหลีกเลี่ยงการใช้ for string in *; do echo "$string"; done
วิธีที่ง่ายและน่าเชื่อถือมากขึ้นคือ
ls
? การแยกวิเคราะห์ls
และ "ทำงานในทุก * ระวังและจะไม่แตกถ้ามีอะไรเกิดขึ้น" ไม่ไปด้วยกันได้ดี
ls -Al *' '*
?ls
ผลลัพธ์ของการแยกวิเคราะห์ไม่เคยนำไปสู่สิ่งที่ดี