GNU/Linux >> Tutoriels Linux >  >> Linux

Grep pour plusieurs chaînes dans des fichiers, puis répertorier les fichiers dans l'ordre de taille ?

Je suis dans un dossier avec beaucoup de .txt file, je voudrais trouver tous les fichiers qui contiennent à la fois stringA et stringB (pas forcément sur la même ligne), puis listez ces fichiers dans l'ordre de la taille (du plus petit au plus grand)

J'ai essayé ce qui suit, mais cela ne fonctionne pas :

ls -lS | for f in *; do grep -q stringA $f && grep -l stringB $f; done

Quelqu'un a-t-il une bonne idée ?

Réponse acceptée :

Vous pouvez utiliser GNU find :

find . -maxdepth 1 -exec grep -q stringA {} ; -exec grep -q stringB {} ; 
        -printf '%10s %pn' | 
    sort -n

Linux
  1. Comment vérifier les fichiers volumineux dans la console

  2. Canaliser vers plusieurs fichiers dans le shell ?

  3. Linux - Obtenir des fichiers pour la date actuelle sous Linux ?

  4. Trouver un mot spécifique dans les fichiers et lister les lignes

  5. Utilisez Find and Locate pour rechercher des fichiers sous Linux

Comment Grep pour plusieurs chaînes, modèles ou mots

Comment trouver une chaîne ou un mot spécifique dans les fichiers et les répertoires

Comment Grep pour plusieurs chaînes et modèles

Comment rechercher et répertorier récursivement les fichiers par date sous Linux

Comment trouver plusieurs chaînes dans des fichiers ? ?

Recherche de fichiers exécutables à l'aide de ls et grep