Tôi muốn grep đầu ra của ls -llệnh của tôi :
-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
Tôi chỉ muốn chạy grep rahmutrên cột $ 3, vì vậy đầu ra của greplệnh của tôi sẽ giống như thế này:
-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
Cách đơn giản nhất để làm điều đó là gì? Câu trả lời phải có sẵn trên nhiều Unice, tốt nhất là tập trung vào Linux và Solaris.
Lưu ý: Tôi không tìm cách tìm tất cả các tệp thuộc về một người dùng nhất định. Ví dụ này chỉ được đưa ra để làm cho câu hỏi của tôi rõ ràng hơn.
--printftùy chọn statcó thể có ích ở những nơi mà bạn có thể xem xét phân tích cú pháp ls. Nhưng thông thường, findlà những gì bạn muốn (như @Gilles đã đề cập).
lsvốn đã rất mong manh (hãy nghĩ điều gì xảy ra nếu tên người dùng chứa khoảng trắng - và vâng, điều này xảy ra trên một số nền tảng). Sử dụngfindthay thế.