Я хочу получить выходные данные моей 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.
NB: я не ищу способ найти все файлы, принадлежащие данному пользователю. Этот пример был дан только для того, чтобы прояснить мой вопрос.
--printf
опция stat
может пригодиться в тех местах, где вы могли бы иначе рассмотреть синтаксический анализ ls
. Но, как правило, find
это то , что вы хотите (как упомянуто @Gilles).
ls
своей природе хрупок (подумайте, что произойдет, если имя пользователя содержит пробелы - и да, это происходит на некоторых платформах). Используйтеfind
вместо этого.