fichiers texte grep uniquement

find . -type f | xargs file | grep text | cut -d':' -f1 | xargs grep -l "TEXTSEARCH" {}

C'est une bonne solution? pour trouver TEXTSEARCH récursivement dans les fichiers textuels uniquement

42
demandé sur StefanoCudini 2012-03-21 18:47:04

2 réponses

Vous pouvez utiliser le -r(récursif) et -I ignorer(binaire) des options grep:

$ grep -rI "TEXTSEARCH" .
  • -I traite un fichier binaire comme s'il ne contenait pas de données correspondantes; ceci est équivalent à l'option --binary-files=without-match.
  • -r Lire tous les fichiers sous chaque répertoire, récursivement; ceci est équivalent à l'option -d recurse.
172
répondu kev 2015-04-15 10:29:44

Une autre solution, moins élégante que kevs, est de chaîner les commandes exec dans find ensemble, sans xargs et cut:

find . -type f -exec bash -c "file -bi {} | grep -q text" \; -exec grep TEXTSEARCH {} ";" 
5
répondu user unknown 2012-03-22 09:20:18