複数のパターンに一致するパスを除外するには、[検索]を使用します。

複数のパターンに一致するパスを除外するには、[検索]を使用します。

リストを作成したら、文字列をsedに置き換えるために入れ子になったYAMLファイルとHTMLファイルを見つけようとします。その-pruneオプションの使用方法を完全に理解できませんでした。これが私が持っているものです。

find . -type f -name '*.yaml' -or -name '*.html' \
    -and -path './.git/*' -or -path '*/node_modules/*' -prune

そのために、私はまだnode_modulesディレクトリの下にHTMLファイルを取得します。

ベストアンサー1

検索ツリー.gitまたは名前のディレクトリを削除するには、次のようにします。node_modules

-type d \( -name .git -o -name node_modules \) -prune

findこれにより、そのディレクトリに入ることもできなくなります(-type d必ずしも必要ではありませんが、ここでは;との対称に使用します-type f。以下を参照)。

その後、別の条件を追加すると

-type d \( -name .git -o -name node_modules \) -prune -o \
-type f \( -name '*.yaml' -o -name '*.html' \) -print

次に終わる

find . \
    -type d \( -name .git -o -name node_modules \) -prune -o \
    -type f \( -name '*.yaml' -o -name '*.html' \) -print

すべてのテストに合格したパス名に対して実行したいすべての操作を代わりに実行する必要があります-print

2 つの述語間の基本的な論理演算は-a(AND) です。

おすすめ記事