Question
Recherche par mot cle CSV
- steph_d
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 65
- Remerciements reçus 0
il y a 16 ans 3 semaines #6248
par steph_d
@+ Steph
Recherche par mot cle CSV a été créé par steph_d
Bonjour
Je cherche comment faire pour récupérer les lignes du fichiers qui contiennent les mot clés.
Voilà ce que j'ai trouvé pour l'instant, exemple pour 2 mot clés. J'utiliserai la récursivité au final.
[code:1]select-string -Path articles.csv -Pattern \"COMPACT\" -simplematch | select-string -Pattern \"EVIER\" -simplematch[/code:1]
D'autres idées ?
Merci
Stephane
Je cherche comment faire pour récupérer les lignes du fichiers qui contiennent les mot clés.
Voilà ce que j'ai trouvé pour l'instant, exemple pour 2 mot clés. J'utiliserai la récursivité au final.
[code:1]select-string -Path articles.csv -Pattern \"COMPACT\" -simplematch | select-string -Pattern \"EVIER\" -simplematch[/code:1]
D'autres idées ?
Merci
Stephane
@+ Steph
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 16 ans 3 semaines #6250
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Recherche par mot cle CSV
steph_d écrit:
Est-ce que tu recherches des mots ou des suites de caractères ?
\"COMPACT\" est-il tjr placé avant \"EVIER\" ou pas ?<br><br>Message édité par: Laurent Dardenne, à: 25/02/10 13:24
Difficile d'en proposer sans connaître le contexte.D'autres idées ?
Est-ce que tu recherches des mots ou des suites de caractères ?
\"COMPACT\" est-il tjr placé avant \"EVIER\" ou pas ?<br><br>Message édité par: Laurent Dardenne, à: 25/02/10 13:24
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- steph_d
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 65
- Remerciements reçus 0
il y a 16 ans 3 semaines #6253
par steph_d
@+ Steph
Réponse de steph_d sur le sujet Re:Recherche par mot cle CSV
Les 2 mon capitaine, ça peut être des mots des suites de caractères des caractère particuliers etc... L'ordre ne doit pas avoir d'importance COMPACT EVIER = EVIER COMPACT.
Le but c'est de pouvoir rechercher (au plus vite évidemment) des articles dans un export CSV de notre base article.
Le but c'est de pouvoir rechercher (au plus vite évidemment) des articles dans un export CSV de notre base article.
@+ Steph
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 16 ans 3 semaines #6257
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Recherche par mot cle CSV
Le AND n'existe pas pour les regex, mais comme une alternative est un OR, on peut combiner les 2 possibilités (A B ou B A).
Une solution à vérifier :
[code:1]
$s=@(\"la est un EVIER COMPACT\",
\"EVIERCOMPACT\",
\"Ici COMPACT est l'EVIER\",
\"COMPACTEVIER\",
\"L'épevier est un rapace compac\",
\"L'épevier est un rapace décompacté\",
\"Compactons le bouclier\",
\"Comp,actons levierement\",
\"Décompactons les éviers\"
\"Ici COMPACT est l'EVIER Ici COMPACT est l'EVIER\"
\"Ici COMPACT est l'EVIER Ici l'EVIER est COMPACT.\"
)
$s|? {$_ -match \"(COMPACT.+EVIER|EVIER.+COMPACT)\"}
$s|% {$_ -match \"(COMPACT.+EVIER|EVIER.+COMPACT)\"}|% {$Matches;$matches=$null}
$s|? {$_ -match \"(COMPACT.*EVIER|EVIER.*COMPACT)\"}
$s|% {$_ -match \"(COMPACT.*EVIER|EVIER.*COMPACT)\"}|% {$Matches;$matches=$null}
$s|? {$_ -match \"(COMPACT{1}.+EVIER{1})\"}
$s|% {$_ -match \"(COMPACT{1}.+EVIER{1})\"}|% {$Matches;$matches=$null}
$s|? {$_ -match \"(COMPACT{1}.+EVIER{1}|EVIER{1}.+COMPACT{1})\"}
$s|% {$_ -match \"(COMPACT{1}.+EVIER{1}|EVIER{1}.+COMPACT{1})\"}|% {$Matches;$matches=$null}
[/code:1]
Il reste à mesurer les perfs et à utiliser des regex \"avares\". Celles-ci s'arrêtent dés que ça 'matche' ( cf. dernier exemple du tableau $S).
Une solution à vérifier :
[code:1]
$s=@(\"la est un EVIER COMPACT\",
\"EVIERCOMPACT\",
\"Ici COMPACT est l'EVIER\",
\"COMPACTEVIER\",
\"L'épevier est un rapace compac\",
\"L'épevier est un rapace décompacté\",
\"Compactons le bouclier\",
\"Comp,actons levierement\",
\"Décompactons les éviers\"
\"Ici COMPACT est l'EVIER Ici COMPACT est l'EVIER\"
\"Ici COMPACT est l'EVIER Ici l'EVIER est COMPACT.\"
)
$s|? {$_ -match \"(COMPACT.+EVIER|EVIER.+COMPACT)\"}
$s|% {$_ -match \"(COMPACT.+EVIER|EVIER.+COMPACT)\"}|% {$Matches;$matches=$null}
$s|? {$_ -match \"(COMPACT.*EVIER|EVIER.*COMPACT)\"}
$s|% {$_ -match \"(COMPACT.*EVIER|EVIER.*COMPACT)\"}|% {$Matches;$matches=$null}
$s|? {$_ -match \"(COMPACT{1}.+EVIER{1})\"}
$s|% {$_ -match \"(COMPACT{1}.+EVIER{1})\"}|% {$Matches;$matches=$null}
$s|? {$_ -match \"(COMPACT{1}.+EVIER{1}|EVIER{1}.+COMPACT{1})\"}
$s|% {$_ -match \"(COMPACT{1}.+EVIER{1}|EVIER{1}.+COMPACT{1})\"}|% {$Matches;$matches=$null}
[/code:1]
Il reste à mesurer les perfs et à utiliser des regex \"avares\". Celles-ci s'arrêtent dés que ça 'matche' ( cf. dernier exemple du tableau $S).
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- steph_d
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 65
- Remerciements reçus 0
il y a 16 ans 3 semaines #6260
par steph_d
@+ Steph
Réponse de steph_d sur le sujet Re:Recherche par mot cle CSV
Salut
Le problème c'est que des mots clé je peux en avoir 1,2,3,4 etc... selon la saisie de l'utilisateur. C'est comme un moteur de recherche (basique hein
).
C'est pour ça que au final je pense que ma solution en utilisant la \"récursivité\" est la plus adaptée.
[code:1]#find est un tableau qui contient les mots cles
$lignes = @(Select-string -Path articles.csv -Pattern $($find[0]) | ForEach-Object{$_.Line})
If ($find.length -ge 2)
{
ForEach ($mot In $find[1..($find.length-1)])
{ $lignes = $lignes | Select-String -Pattern($mot) }
}
[/code:1]
Si ça peut servir
Le problème c'est que des mots clé je peux en avoir 1,2,3,4 etc... selon la saisie de l'utilisateur. C'est comme un moteur de recherche (basique hein
C'est pour ça que au final je pense que ma solution en utilisant la \"récursivité\" est la plus adaptée.
[code:1]#find est un tableau qui contient les mots cles
$lignes = @(Select-string -Path articles.csv -Pattern $($find[0]) | ForEach-Object{$_.Line})
If ($find.length -ge 2)
{
ForEach ($mot In $find[1..($find.length-1)])
{ $lignes = $lignes | Select-String -Pattern($mot) }
}
[/code:1]
Si ça peut servir
@+ Steph
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 16 ans 3 semaines #6263
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Recherche par mot cle CSV
steph_d écrit:
ça, je ne le savais pasLe problème c'est que des mots clé je peux en avoir 1,2,3,4
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.049 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Recherche par mot cle CSV