Ich möchte die Ausgabe meines ls -l
Befehls überprüfen :
-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
Ich möchte nur grep rahmu
in Spalte $ 3 ausgeführt werden, daher sollte die Ausgabe meines grep
Befehls folgendermaßen aussehen:
-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
Wie geht das am einfachsten? Die Antwort muss auf viele Unices übertragbar sein und sich vorzugsweise auf Linux und Solaris konzentrieren.
NB: Ich suche nicht nach einer Möglichkeit, alle Dateien eines bestimmten Benutzers zu finden. Dieses Beispiel wurde nur gegeben, um meine Frage klarer zu machen.
--printf
Option stat
nützlich sein kann, wenn Sie andernfalls das Parsen in Betracht ziehen ls
. Aber normalerweise find
ist es das , was du willst (wie @Gilles erwähnt).
ls
inhärent fragil ist (denken Sie daran, was passiert, wenn ein Benutzername Leerzeichen enthält - und ja, dies passiert auf einigen Plattformen). Verwenden Siefind
stattdessen.