Eu quero grep a saída do meu ls -l
comando:
-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
Quero executar apenas grep rahmu
na coluna $ 3, portanto, a saída do meu grep
comando deve ficar assim:
-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
Qual é a maneira mais simples de fazer isso? A resposta deve ser portátil em muitos Unices, preferencialmente focando no Linux e Solaris.
NB: Não estou procurando uma maneira de encontrar todos os arquivos pertencentes a um determinado usuário. Este exemplo foi dado apenas para tornar minha pergunta mais clara.
--printf
opção stat
pode ser útil em locais onde você pode considerar a análise ls
. Mas geralmente find
é o que você deseja (como o @Gilles mencionou).
ls
é inerentemente frágil (pense no que acontece se um nome de usuário contiver espaço em branco - e sim, isso acontece em algumas plataformas). Use emfind
vez disso.