H
Hello World
Routinier
Hallo,
Mit find ... -exec <irgendwas> \; kann man ja für jede durch find gefundene Datei einen Befehl ausführen lassen. Leider habe ich bisher keine Möglichkeit gefunden, in diesen Befehlen Backticks oder Pipes einzubauen. Also wenn ich mich z. B. durch alle Textdateien greppen will:
find . -iname "*.txt" -exec cat {} | grep foo \;
(Anm.: das ist nur ein Beispiel um das Problem zu erklären, ich weiß wie man es normalerweise machen würde)
Das funktioniert aber nicht. Wenn ich das |-Zeichen nicht escape, denkt die shell, ich möchte die Ausgabe von find in grep umleiten. Wenn ich es escape, denkt find, es solle cat das |-Zeichen als zweites Argument übergeben, was natürlich beides Unfug ist, bzw. nicht das, was ich will. Kennt jemand einen Ausweg?
Mit find ... -exec <irgendwas> \; kann man ja für jede durch find gefundene Datei einen Befehl ausführen lassen. Leider habe ich bisher keine Möglichkeit gefunden, in diesen Befehlen Backticks oder Pipes einzubauen. Also wenn ich mich z. B. durch alle Textdateien greppen will:
find . -iname "*.txt" -exec cat {} | grep foo \;
(Anm.: das ist nur ein Beispiel um das Problem zu erklären, ich weiß wie man es normalerweise machen würde)
Das funktioniert aber nicht. Wenn ich das |-Zeichen nicht escape, denkt die shell, ich möchte die Ausgabe von find in grep umleiten. Wenn ich es escape, denkt find, es solle cat das |-Zeichen als zweites Argument übergeben, was natürlich beides Unfug ist, bzw. nicht das, was ich will. Kennt jemand einen Ausweg?