Question Recherche par mot cle CSV

Plus d'informations
il y a 16 ans 3 semaines #6248 par steph_d
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

@+ Steph

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 3 semaines #6250 par Laurent Dardenne
steph_d écrit:

D'autres idées ?

Difficile d'en proposer sans connaître le contexte.
Est-ce que tu recherches des mots ou des suites de caractères ?
\&quot;COMPACT\&quot; est-il tjr placé avant \&quot;EVIER\&quot; 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.

Plus d'informations
il y a 16 ans 3 semaines #6253 par steph_d
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.

@+ Steph

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 3 semaines #6257 par Laurent Dardenne
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=@(\&quot;la est un EVIER COMPACT\&quot;,
\&quot;EVIERCOMPACT\&quot;,
\&quot;Ici COMPACT est l'EVIER\&quot;,
\&quot;COMPACTEVIER\&quot;,
\&quot;L'épevier est un rapace compac\&quot;,
\&quot;L'épevier est un rapace décompacté\&quot;,
\&quot;Compactons le bouclier\&quot;,
\&quot;Comp,actons levierement\&quot;,
\&quot;Décompactons les éviers\&quot;
\&quot;Ici COMPACT est l'EVIER Ici COMPACT est l'EVIER\&quot;
\&quot;Ici COMPACT est l'EVIER Ici l'EVIER est COMPACT.\&quot;
)

$s|? {$_ -match \&quot;(COMPACT.+EVIER|EVIER.+COMPACT)\&quot;}
$s|% {$_ -match \&quot;(COMPACT.+EVIER|EVIER.+COMPACT)\&quot;}|% {$Matches;$matches=$null}
$s|? {$_ -match \&quot;(COMPACT.*EVIER|EVIER.*COMPACT)\&quot;}
$s|% {$_ -match \&quot;(COMPACT.*EVIER|EVIER.*COMPACT)\&quot;}|% {$Matches;$matches=$null}
$s|? {$_ -match \&quot;(COMPACT{1}.+EVIER{1})\&quot;}
$s|% {$_ -match \&quot;(COMPACT{1}.+EVIER{1})\&quot;}|% {$Matches;$matches=$null}
$s|? {$_ -match \&quot;(COMPACT{1}.+EVIER{1}|EVIER{1}.+COMPACT{1})\&quot;}
$s|% {$_ -match \&quot;(COMPACT{1}.+EVIER{1}|EVIER{1}.+COMPACT{1})\&quot;}|% {$Matches;$matches=$null}
[/code:1]
Il reste à mesurer les perfs et à utiliser des regex \&quot;avares\&quot;. 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.

Plus d'informations
il y a 16 ans 3 semaines #6260 par steph_d
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 :laugh:).
C'est pour ça que au final je pense que ma solution en utilisant la \&quot;récursivité\&quot; 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.

Plus d'informations
il y a 16 ans 3 semaines #6263 par Laurent Dardenne
steph_d écrit:

Le problème c'est que des mots clé je peux en avoir 1,2,3,4

ça, je ne le savais pas :)

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.049 secondes
Propulsé par Kunena