Wie kann ich den Befehl grep dazu bringen, bestimmte Wörter in den Dateien zu finden, die durch die vom Befehl locate gefundenen Routen angegeben sind?
locate my.cnf | grep user
(Ich möchte, dass der grep-Befehl das Wort „user“ in den Dateien sucht, die für den locate-Befehl gefunden wurden)
Akzeptierte Antwort:
Wenn Ihre Suchergebnisse Pfade ohne Leerzeichen zurückgeben, können Sie xargs
verwenden so:
locate my.cnf | xargs grep user
Sie sollten sich jedoch angewöhnen, sich vor dem Fall zu schützen, dass ein Pfad oder Dateiname ein Leerzeichen enthält, indem Sie xargs
angeben um null
zu verwenden als Trennzeichen und mit locate
(oder welches Programm Sie auch verwenden, um Zeichenfolgen zurückzugeben), um dies auch als Trennzeichen zu senden:
locate -0 my.cnf | xargs -0 grep user
Dies würde sogar funktionieren, wenn Ihr Pfad Leerzeichen wie /name with space/my.cnf
enthält .