再帰Grepのディレクトリですべての.texファイルを見つける方法は?

再帰Grepのディレクトリですべての.texファイルを見つける方法は?

.texファイルのみを含むようにシンボリックリンクの再帰検索を拡張したいと思いますfind . -type l -name "Math*" -exec grep -d "recurse" word {} +。失敗した疑似コード1

find . -type l -name "Math*" \
  -exec WHERE CHOOSE ONLY .tex files and Directories \
  -exec grep -d "recurse" word {} +

.tex ファイルとディレクトリを選択するコマンドを入力できません。つまり、擬似コード2

  1. ディレクトリを指す「Math」という名前のすべてのシンボリックリンクを探します。
  2. すべてのシンボリックリンクディレクトリを繰り返します(ここではgrepが制限される可能性があると思います)。
  3. grep wordファイルリストの基本操作の実行

(2)ステップをどのように実行しますか?

ベストアンサー1

私はこれが私が作ったものの最も愚かなコマンドパイプラインの1つだと思います。

$ find . -type l -name "Math*" -print0 |
  xargs -0 -n 1 -IXXX find XXX/ -type f -name "*.tex" -print0 |
  xargs -0 fgrep "word"
  1. 名前付きのすべてのシンボリックリンクを見つけますMath*
  2. 見つかった各パスで操作をやり直してファイルをfind見つけます*.tex。呼び出すにはxargsパス名が1つだけ必要です。パス名はプレースホルダに入力されます。-n 1findXXX
  3. 呼び出しは、見つかったファイルの文字列で行われますfgrep(つまり、固定された検索文字列があるため)。grep -F

おすすめ記事