Я хочу присвоїти результат своєї 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
Який найпростіший спосіб це зробити? Відповідь має бути переносним у багатьох Юнісах, бажано зосередитись на Linux та Solaris.
NB: Я не шукаю способу знайти всі файли, що належать даному користувачеві. Цей приклад був поданий лише для того, щоб зробити моє запитання зрозумілішим.
--printfваріант statможе стати в нагоді в тих місцях, де ви могли б інакше розглянути питання про розбір ls. Але зазвичай findце те, що ви хочете (як згадував @Gilles).
lsє властивим крихким (подумайте, що станеться, якщо ім'я користувача містить пробіли - і так, це відбувається на деяких платформах). Використовуйтеfindзамість цього.