2016-05-04 60 views
1

私は複雑な正規表現を無視パターンとして渡そうとしています。 locales/のサブフォルダはすべて無視したいです。locales/US/en/*を除きます。私は.agignoreファイルを使用することにフォールバックする必要があるかもしれませんが、私はそれを避けようとしています。コマンドラインをzshで展開する

私はシルバーサーチャー(Ack、Grepに似ています)を使用しています。私は端末でzshを使用しています。これは本当によく働くとlocales/US以外のすべてのロケールのサブフォルダを無視

:私もlocales/US/en ためを除くすべてのlocales/US/*を無視したい

ag -g "" --ignore locales/^US/ | fzf 

は、私がしたい場合は、このですが、それは動作しません。

ag -g "" --ignore locales/^US/^en | fzf 

考えられますか?

答えて

1

複数の--ignoreコマンドを追加します。例えば:

ag -g "" --ignore locales/^US/ --ignore locales/US/^en 
+0

ワウ。魅力のように働いた –

0

次も同様に動作することができます:

find locales/* -maxdepth 0 -name 'US' -prune -o -exec rm -rf '{}' ';' 

Man Pages Documentation

-prune 真を。ファイルがディレクトリの場合は、そのディレクトリに降りてはいけません。 -depthが指定されている場合はfalseです。無効。 -deleteは-depthを意味するため、-pruneと-deleteを一緒に使用することはできません。

-prune

はあなたの結果( better description here

-execコマンドをフィルタリングすることができます。 コマンドを実行します。ステータスが0の場合はtrue。 findに続くすべての引数は、 ';'で構成される引数までコマンドの引数とみなされます。遭遇する。文字列 '{}'は、findのいくつかのバージョンのように、それが単独の引数ではなく、コマンドの引数に現れるすべての場所で処理されている現在のファイル名に置き換えられます。シェルによる拡張からシェルを保護するために、これらの構造の両方をエスケープ(「\」で囲む)または引用符で囲む必要があるかもしれません。 -execオプションの使用例については、「使用例」を参照してください。指定されたコマンドは、一致するファイルごとに1回実行されます。コマンドは開始ディレクトリで実行されます。 -execアクションの使用には避けられないセキュリティ上の問題があります。代わりに-execdirオプションを使用してください。

-exec結果に応じてコマンドを実行できます。find

+0

私は質問を誤読し、 'US/en'を削除しません。 – TheIronDeveloper

関連する問題