Как запустить grep в одном столбце?

Я хочу выполнить 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.

NB: Я не ищу способ найти все файлы, принадлежащие данному пользователю. Этот пример был предоставлен только для того, чтобы сделать мой вопрос более ясным.

33 голоса | спросил rahmu 15 FebruaryEurope/MoscowbWed, 15 Feb 2012 18:41:34 +0400000000pmWed, 15 Feb 2012 18:41:34 +040012 2012, 18:41:34

1 ответ


10

Если по столбцу вы имеете в виду столбец фиксированного размера, вы можете:

ls -l | grep "^.\{15\}rahmu"

где ^ означает начало строки, . означает любой символ и \{15\} означает ровно 15 вхождений предыдущего символа (любой символ в этом случае).

ответил jfg956 15 FebruaryEurope/MoscowbWed, 15 Feb 2012 21:22:34 +0400000000pmWed, 15 Feb 2012 21:22:34 +040012 2012, 21:22:34

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132