Chcę grepować wyjście mojego ls -l
polecenia:
-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
Chcę uruchomić tylko grep rahmu
w kolumnie $ 3, więc wynik mojej grep
komendy powinien wyglądać następująco:
-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
Jak najprościej to zrobić? Odpowiedź musi być przenośna na wiele Uniksów, najlepiej na Linuksie i Solarisie.
NB: Nie szukam sposobu na znalezienie wszystkich plików należących do danego użytkownika. Ten przykład został podany tylko w celu wyjaśnienia mojego pytania.
--printf
opcja ta stat
może się przydać w miejscach, w których w innym przypadku można rozważyć analizę ls
. Ale zwykle find
jest to, czego chcesz (jak wspomniano @Gilles).
ls
jest z natury delikatne (pomyśl, co się stanie, jeśli nazwa użytkownika zawiera spacje - i tak, dzieje się to na niektórych platformach). Użyjfind
zamiast tego.