ฉันต้องการ grep ผลลัพธ์ของls -l
คำสั่งของฉัน:
-rw-r--r-- 1 root root 1866 Feb 14 07:47 rahmu.file
-rw-r--r-- 1 rahmu user 95653 Feb 14 07:47 foo.file
-rw-r--r-- 1 rahmu user 1073822 Feb 14 21:01 bar.file
ฉันต้องการเรียกใช้grep rahmu
ในคอลัมน์ $ 3 เท่านั้นดังนั้นผลลัพธ์ของgrep
คำสั่งของฉันควรมีลักษณะเช่นนี้:
-rw-r--r-- 1 rahmu user 95653 Feb 14 07:47 foo.file
-rw-r--r-- 1 rahmu user 1073822 Feb 14 21:01 bar.file
วิธีที่ง่ายที่สุดที่จะทำคืออะไร? คำตอบต้องเป็นแบบพกพาใน Unices จำนวนมากโดยควรเน้นที่ Linux และ Solaris
หมายเหตุ: ฉันไม่ได้มองหาวิธีการค้นหาไฟล์ทั้งหมดที่เป็นของผู้ใช้ที่ได้รับ ตัวอย่างนี้ให้เพื่อทำให้คำถามของฉันชัดเจนยิ่งขึ้น
--printf
ตัวเลือกที่จะอาจจะมาในสะดวกในสถานที่ที่คุณมิฉะนั้นอาจพิจารณาแยกstat
ls
แต่โดยปกติแล้วfind
คือสิ่งที่คุณต้องการ (ตามที่ @Gilles พูดถึง)
ls
มันค่อนข้างบอบบาง (คิดว่าจะเกิดอะไรขึ้นถ้าชื่อผู้ใช้มีช่องว่าง - และใช่เกิดขึ้นในบางแพลตฟอร์ม) ใช้find
แทน