Quiero grep la salida de mi 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
Solo quiero ejecutar grep rahmu
en la columna $ 3, por lo que el resultado de mi grep
comando debería verse así:
-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
¿Cuál es la forma más sencilla de hacerlo? La respuesta debe ser portátil en muchos Unices, preferiblemente enfocándose en Linux y Solaris.
NB: no estoy buscando una manera de encontrar todos los archivos que pertenecen a un usuario determinado. Este ejemplo solo se dio para aclarar mi pregunta.
--printf
opción stat
puede ser útil en lugares donde de lo contrario podría considerar el análisis ls
. Pero generalmente, find
es lo que quieres (como mencionó @Gilles).
ls
es inherentemente frágil (piense qué sucede si un nombre de usuario contiene espacios en blanco, y sí, esto sucede en algunas plataformas). Usar en sufind
lugar.