4

これは非常に典型的な使用例のように思えますが、それを理解できたらどうしようもありません。私が見逃している基本的な何かがあるに違いありません。

find-dired は基本的に、結果の dired バッファを生成する find コマンドのフロント エンドです。

find-grep-dired は、find よりも grep のフロント エンドのようです。dired-buffer を生成しますが、ディレクトリ ツリー内のすべてのファイルを検索します。

私が望むのは、特定のパスから開始して *.css で #some-id を検索し、さらに処理するために dired-buffer を取得できる機能です。

すべての部品がそこにあるようですが、私はそれを理解していません。だから私はそれが私が見逃したかもしれない基本的なことだと思っています。

4

4 に答える 4

4

探している関数はgrepのようです。指定した式で grep ユーティリティを呼び出し、インタラクティブ バッファに出力を収集します。バッファ内の一致行のいずれかを選択して、一致元のファイル内のその行にジャンプできます。

たとえば、 を実行するM-x grepと、ミニバッファーに次のプロンプトが表示されます。

Run grep (like this): grep -n

次に、grep に渡したい正規表現とグロブ パターンを追加します。

Run grep (like this): grep -n #some-id *.css

そして、現在のディレクトリで#some-id一致するすべてのファイルの一致のリストが表示されます。*.cssサブディレクトリを再帰する場合は、grep の代わりに rgrep を使用する必要があります。これはあなたが探しているもののように聞こえますか、それとも私はあなたの要求を完全に誤解していますか?

于 2010-01-18T18:50:01.880 に答える
1

A.レヴィの功績を認めます。しかし、私はそれを理解したと思います。find-dired は確かにその仕事のためのツールのようですが、私の Windows マシンでは、引数に「-exec grep」があらかじめ入力されていません。ただし、私のLinuxマシンはgrepで事前に入力しています。

そう....

  #on Linux
  M-x find-dired
  Run Find in Directory: <current_path> 
  Run find(with args): -type f -exec grep -q -e \{\} \; 

  #on windows
  M-x find-dired
  Run Find in Directory: <current_path> 
  Run find(with args): 

  #Solution
  M-x find-dired
  Run Find in Directory: <current_path> 
  Run find(with args): -type f -iname "*.css" -exec grep -q -e #some-id \{\} \; 
于 2010-01-18T22:59:18.190 に答える
1

あなたは(コメントで)言った:

欠けているのは dired バッファへの出力だけなので、一度にすべてのファイルを選択/移動/コピーすることができます

申し訳ありませんが、今までこの質問を見ていませんでした。その機能はDired+で利用できます。コマンドは、ヒットでdiredp-grepped-files-other-window示されたファイルで dired を開きます。grep( から派生した他のモードでも機能しますcompilation-mode。)

于 2015-06-05T08:48:12.087 に答える