grep et expression régulière (débutant) - Shell/Batch - Programmation
Marsh Posté le 02-01-2006 à 19:41:26
egrep pour les expressions régulières, mais de toute façon il y a bien plus simple :
media $racine | awk -F':' '( $2 == "nom album" ) { print $0 }' |
(selon les versions, tu peux avoir à remplacer "awk" par "nawk" ou "gawk" )
Marsh Posté le 02-01-2006 à 23:37:34
yoshi42 a écrit : Bonjour,
|
Ben grep ne sert pas à ça. grep sert à extraire des lignes entières contenant un certain pattern. Toi, tu veux extraire une certaine colonne donc c'est du "cut" qu'il te faut (ou du awk qui permet de programmer un script complet de traitement des lignes lues)
La solution de Elmoricq est fonctionnelle. Sinon pour ta culture perso, la syntaxe "cut" est la suivante:
media $racine |cut -f2 -d: pour demander d'extraire le second champ (-f2) en utilisant le délimiteur ":" ("-d:" )
Marsh Posté le 03-01-2006 à 00:42:28
Merci pour vos réponses
Sve@r a écrit : Ben grep ne sert pas à ça. grep sert à extraire des lignes entières contenant un certain pattern. Toi, tu veux extraire une certaine colonne donc c'est du "cut" qu'il te faut (ou du awk qui permet de programmer un script complet de traitement des lignes lues) |
Sve@r tu m'as mal compris
je ne veux pas extraire une colonne. Je veux renvoyer les lignes (ligne entière, pas juste une colonne) qui ont dans un champ PRECIS un certain pattern.
J'ai trouvé la syntaxe, par exemple pour renvoyer les lignes qui ont un titre=test, je fais:[
Code :
|
pour renvoyer les lignes qui ont un genre=humour ou un genre=pop, je fais:
Code :
|
Marsh Posté le 03-01-2006 à 22:08:24
yoshi42 a écrit : Merci pour vos réponses
|
J'ai compris. Mais, contrairement à la remarque de Elmoricq, je pense que tu aurais avantage à utiliser "awk" parce que tu peux paramétrer facilement le champ qui doit contenir la valeur que tu cherches; alors qu'avec ton egrep talentueux mais... lourd, tu es obligé de spécifier un schéma incluant tous les champs précédents celui qui t'intéresse
Marsh Posté le 04-01-2006 à 00:42:03
Sve@r a écrit : Mais, contrairement à la remarque de Elmoricq, je pense que tu aurais avantage à utiliser "awk" |
C'était du second degré, je partage cette opinion.
Marsh Posté le 07-01-2006 à 01:28:37
Elmoricq a écrit : C'était du second degré |
oups... évidemment ! j'aurais dû m'en apercevoir tout seul
Marsh Posté le 07-01-2006 à 02:03:37
Sve@r a écrit : J'ai compris. Mais, contrairement à la remarque de Elmoricq, je pense que tu aurais avantage à utiliser "awk" parce que tu peux paramétrer facilement le champ qui doit contenir la valeur que tu cherches; alors qu'avec ton egrep talentueux mais... lourd, tu es obligé de spécifier un schéma incluant tous les champs précédents celui qui t'intéresse |
Code :
|
marche pas ca ?
Marsh Posté le 26-11-2010 à 13:32:18
Bonjour,
je suis bloqué sur un point débile depuis des heures.
je veux créer un path (chemin d'un dossier avec les expressions régulières).
pour être précis, voici ce que je fais.
1.J'ai un fichier texte dans leque je stoque des noms des autres fichiers.
2.je parcours ce fichier ligne par ligne et je récupère le nom de fichier.
=> ça est bon.
3. je dois enlever l'extension de fichier
=> c'est bon
4. je dois chercher ce fichier s'il existe ou nom dans mon dossier
exemple.
toto.txt
=> je récupère toto
=> je dois chercher s'il existe toto ou toto.txt dans mon dossier C
Donc je dois utiliser une expression régulière pour vérifier les deux cas mais je n'arrive pas à construire la bonne expression.
merc
Marsh Posté le 02-01-2006 à 19:09:46
Bonjour,
J'ai une fonction media $racine qui me renvoie tous les mp3 du répertoire racine sous la forme
Comment puis je faire un grep de $recherche sur l'un des champs (par exemple le 2eme)
je n'arive pas à construire l'expression régulière pour atteindre ce champ
Merci d'avance pour votre aide