1. ホーム

[解決済み】findコマンドで返されたファイルのリストをcatにパイプし、すべてのファイルを表示させる方法

2022-04-22 05:26:23

質問

をやっています。 find で、ファイルのリストを取得します。それをどのように他のユーティリティにパイプすればよいのでしょうか? cat (catがそれらすべてのファイルの内容を表示するように)基本的に必要なのは grep これらのファイルから何かを得ることができます。

解決方法は?

  1. 別プロセスにパイピングする(ただし、これではあなたが言おうとしていることは達成できません)。

    command1 | command2
    
    

    これは、command1 の出力を command2 の入力として送ります。

  2. -execfind (これは、あなたがしたいことを行うことができます -- しかし、特定の find )

    find . -name '*.foo' -exec cat {} \;
    
    

    (の間はすべて find-exec は、すでに使っていたfind述語です。 {} は、あなたが見つけた特定のファイルをコマンドに代入します ( cat {} この場合 \; を終了させることです。 -exec コマンドを使用します)。

  3. あるプロセスの出力をコマンドライン引数として別のプロセスに送る

    command2 `command1`
    
    

    を例にとります。

    cat `find . -name '*.foo' -print`
    
    

    (これらは通常の引用符ではなく、バッククォート(キーボードのチルダ~の下)であることに注意してください)。 これは command1command2 をコマンドライン引数として使用します。 ただし、スペース(改行など)を含むファイル名は、別々の引数に分割されることに注意してください。