คุณสามารถดึงข้อมูลคอลัมน์ที่ระบุในเชลล์เช่น:
ls -al | while read perm bsize user group size month day time file; do echo $day; done
หรือawk
ตามที่ปรากฏในคำตอบ @Corey , cut -c44-45
นอกจากนี้ยังจะทำงานหลังจากที่ปรับตัว (ตั้งแต่ls
ได้กำหนดคอลัมน์) หรือสิ่งอื่น แต่ปัญหาหลักก็คือว่ามันจะไม่เป็นที่น่าเชื่อถือและกระสุน (เช่นบน Unix มันอาจจะ$6
ไม่ได้$7
และมัน การเปลี่ยนแปลงขึ้นอยู่กับข้อโต้แย้ง) ทำให้ไม่เหมาะสำหรับเครื่องไม่แนะนำให้แยกls
คำสั่งเลย
วิธีที่ดีที่สุดคือการใช้คำสั่งต่าง ๆ เช่นfind
หรือstat
ซึ่งมีตัวเลือกที่เกี่ยวข้องเพื่อจัดรูปแบบเอาต์พุตตามที่คุณต้องการ ตัวอย่างเช่น:
$ stat -c "%x %n" *
2016-04-10 04:53:07.000000000 +0100 001.txt
2016-04-10 05:08:42.000000000 +0100 7c1c.txt
หากต้องการส่งคืนคอลัมน์ของการแก้ไขเพียงไม่กี่วันให้ลองตัวอย่างนี้:
stat -c "%x" * | while read ymd; do date --date="$ymd" "+%d"; done
มันควรค่าแก่การสังเกตว่า GNU stat
สามารถมีตัวเลือกต่าง ๆ สำหรับ BSD stat
ดังนั้นมันจะไม่สามารถกันกระสุนในระบบปฏิบัติการที่แตกต่างกันได้
ls
ไม่ต้องพึ่งพาชิ้นส่วนของข้อมูลการให้บริการในสถานที่เฉพาะเจาะจงfind
คำสั่งจะเป็นประโยชน์อย่างมาก