Tôi muốn grep đầu ra của ls -l
lệ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 rahmu
trên cột $ 3, vì vậy đầu ra của grep
lệ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.
--printf
tùy chọn stat
có 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, find
là những gì bạn muốn (như @Gilles đã đề cập).
ls
vố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ụngfind
thay thế.