Rechercher : dans
Par :

Fichiers contenant une chaine de caractère

mathieu, le 24 mai 2005 à 14:09:48
 Signaler ce message aux modérateurs

Bonjour,

quelle commande me permettrait de savoir quels fichiers ds un dossier que l'on appellera D1 contiennent une chaîne de caractères string1?
je pense qu'il faut faire appel aux commandes find et grep.
à mon avis, il faudrait les utiliser ds une même ligne de commande.
jai essayé find [chemin du dossier D1] -name |grep string 1 -print...
ça ne marche pas...

merci de m'éclairer!

mathieu

Meilleures réponses pour « fichiers contenant une chaine de caractère » dans :
Supprimer un fichier contenant des caractères spéciaux Voir Si le fichier que vous souhaitez supprimer commence par un caractère "moins" (-), la commande rm risque de prendre la suite comme une option de la ligne de commande. Pour y remédier, une première solution consiste à faire précéder le nom du...
[Windows] Obtenir la liste des fichiers d'un dossier VoirLister le contenu d'un dossier Voici une astuce simple qui permet de lister le nom des fichiers contenus dans un répertoire. Vous pourrez obtenir en un clic les titres de vos chansons, de vos photos, etc. dans un fichier...
GRUB - La structure de fichier de configuration VoirLe fichier de configuration de GRUB Introduction Exemple de configuration type Explications Paramètres par défaut 1. Adressage des disques 2. title 3. root 4. kernel 5. initrd 6. rootnoverify 7....
[Windows] Fichier .CAB endommagé ou manquant VoirUn fichier CAB est un fichier contenant les fichiers nécessaires à l'installation d'une application. Si Windows vous affiche un des messages suivants, il peut être possible d'y remédier en lisant la suite de cet article : Erreur 1311. Fichier...
Langage C - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne...
VBScript - Les fonctions de chaînes de caractères VoirLes fonctions de chaînes de caractères Fonction Description Filter(InputStrings, Value[, Include[, Compare]]) Sélectionne des chaînes de caractères parmi un tableau de chaînes...
Javascript - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractère Une chaîne de caractère est, comme son nom l'indique, une suite de caractères. On la représente par la suite de caractères encadrée par des guillemets simples (') ou doubles ("), sachant que les deux types de...

1

mamiemando, le 24 mai 2005 à 14:14:44
  • +4

Grep -nri motif filtrefichier

n -> dans le fichier
r -> recherche récursive (ie dans les sous répertoires)
i -> insensible à la casse

Exemple :
$ grep -nri "include" *.cpp

2

mathieu, le 24 mai 2005 à 14:17:20

Merci!
si je comprends bien, il faut donc que je me positionne au niveau du dossier qui m'intéresse: ici D1...
car je ne souhaite pas kil me recherche la chaine ds tous les réperetoires mais juste ds le dossier D1 et je ne sais comment lui spécifier...

3

jipicy, le 24 mai 2005 à 14:18:41
  • +6

Salut,

Alors tu peux essayer avec la commande "find" comme ceci :

find /chemin/rep -name "*" -exec grep -Hn "string" {} \;
Alors en gros on recherche dans le répertoire "/chemin/rep", en passant en revue tous les fichiers du répertoire et des sous-répertoires (tu peux cibler d'avantage en réduisant la recherche à quelques répertoires ou aux extensions de fichiers), puis pour chaque fichier on recherche la chaîne (string) en affichant le chemin (-H) et le numéro de ligne (-n) si la chaîne est trouvée.

Tu peux aussi essayer comme ça :
find /chemin/rep -name '*' |xargs grep -l "string" 
;-)) Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé. 

4

mamiemando, le 24 mai 2005 à 14:20:28

Pour le grep que je t'ai donné la recherche se fait à partir du dossier où tu te trouves. L'option -r permet de fouiller en plus dans ses sous-dossiers. Bref évite de faire ce genre de choses depuis / sinon tu risque d'avoir le temps long ;o)

5

mathieu, le 24 mai 2005 à 14:28:18

Merci!

à koi correspondent xargs et Hn?
pkoi rajouter "{} \;" ?

6

jipicy, le 24 mai 2005 à 14:34:54
  • +1

à koi correspondent xargs et Hn?
Pour "xargs" => man xargs
pour "-Hn" => lire mon post en entier, c'est expliqué ;-))

Pour "{}", ça représente toutes les occurences trouvées correspondants au motif "*" (là dans ce cas, tous les fichiers du répertoire et des sous-répertoires).

Le ";" c'est pour signifier la fin de la commande, et le "\" devant c'est pour "échapper" le caractère ";". Z'@+...che.

JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé. 

7

 mathieu, le 24 mai 2005 à 14:36:49

Ok merci!