Chcę grepować wyjście mojego ls -lpolecenia:
-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 rahmuw kolumnie $ 3, więc wynik mojej grepkomendy 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.
--printfopcja ta statmoże się przydać w miejscach, w których w innym przypadku można rozważyć analizę ls. Ale zwykle findjest to, czego chcesz (jak wspomniano @Gilles).
lsjest 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żyjfindzamiast tego.