OVH Cloud OVH Cloud

supprimer les lignes dans un fichier

34 réponses
Avatar
Trust
Bonjour,

J’ai un très gros fichier .txt
Je souhaite supprimer les lignes qui sont en double dans le fichier.
Alors je recherche un script vbs pouvant le faire.
Si quelqu’un a une suggestion.
Merci d’avance.

10 réponses

1 2 3 4
Avatar
Jacques Barathon [MS]
"Michel Claveau" <Enleverles wrote in message
news:
Re !

Dans le même genre, voici un script qui va trouver les lignes que l'on
trouve identiques, dans deux fichiers textes différents :

.pyt
s=Set(lload('t1.txt'))
r=Set(lload('t2.txt'))
lwrite('intersect.txt',(s & r))
quit

J'aimerais bien savoir comment c'est possible en PS...


Très fort l'opérateur "&"! Il y a peut-être l'équivalent dans le .Net
Framework, mais là mes compétences ont leurs limites.
En l'état actuel de mes connaissances de PowerShell, j'ai la solution
suivante:

$t1 = type t1.txt
$t2 = type t2.txt
$intersect = compare $t1 $t2 -inc | where {$_.SideIndicator -eq "=="}
$intersect | foreach {$_.InputObject} > intersect.txt

Là évidemment, PowerShell est un peu plus verbieux que Python. A moins que
quelqu'un ait mieux? Après tout, je ne prétends pas être Le représentant de
PowerShell sur Terre :-)

Jacques

Avatar
Jean
il paraît que la Belgique pense ne perdre AUCUN match, durant le mondial
de foutebol. C'est vrai ?


Mais pourquoi diable (rouge) me parle-t-il de football alors que
l'actualité sportive française est au tennis ... ????? :O)

--
Jean - JMST
Belgium

Avatar
Jean
Tout à fait possible, s'ils font trois matches nuls dans le premier tour et
ne finissent pas dans les deux premiers de leur groupe :-)


Croisons les doigts :O)

--
Jean - JMST
Belgium

Avatar
Méta-MCI
Re

AMHA, le plus simple, pour ne perdre aucun match, ... c'est qu'ils n'en
jouent aucun.
Ce qui risque fort d'arriver, puisque le Belgique n'est pas qualifiée pour
le Mondial 2006.

Mais, au prochaine mondial, ils auront deux équipes : une flamande, et une
wallonne.

@+

MCI
Avatar
Jean
Très fort l'opérateur "&"! Il y a peut-être l'équivalent dans le .Net
Framework, mais là mes compétences ont leurs limites.


Ca vaudra la peine de s'y repencher la pluie revenue :-)

Sinon j'ai testé votre code et il fonctionne ici en Belgique :-)

Juste quelque chose qui me semble curieux.
En mettant le contenu dans un fichier ps1 et en l'exécutant dans la
console PowerShell "compare" n'est pas reconnu par l'interpréteur.
Ca fonctionne en mettant "compare-objet".
Bug ?

Je ne sais pas ... je retourne tondre ma pelouse :-)

Amicalement,

--
Jean - JMST
Belgium

Avatar
Jean
Mais, au prochaine mondial, ils auront deux équipes : une flamande, et une
wallonne.


... et des germanophones comme gardien de but ... l'idée est à creuser
... :-)

--
Jean - JMST
Belgium

Avatar
Jacques Barathon [MS]
"Jean" wrote in message
news:
Très fort l'opérateur "&"! Il y a peut-être l'équivalent dans le .Net
Framework, mais là mes compétences ont leurs limites.


Ca vaudra la peine de s'y repencher la pluie revenue :-)

Sinon j'ai testé votre code et il fonctionne ici en Belgique :-)

Juste quelque chose qui me semble curieux.
En mettant le contenu dans un fichier ps1 et en l'exécutant dans la
console PowerShell "compare" n'est pas reconnu par l'interpréteur.
Ca fonctionne en mettant "compare-objet".
Bug ?


Oubli de ma part... J'ai la ligne suivante dans mon profil qui crèe
automatiquement des alias pour toutes les commandes portant sur "object":
gcm -noun object|%{set-alias $_.Verb $_ -ea silentlycontinue}

Il faut donc bien remplacer "compare" par "compare-object". :-)

Jacques


Avatar
Jean
Ca fonctionne en mettant "compare-objet".
Bug ?


Il fait chaud :-)
En fait on ne peut abbréger que les paramètres, pour le reste il faut
utiliser les alias (et vous aviez probablement un alias "compare").

Amicalement,

--
Jean - JMST
Belgium

Avatar
Jean
"Jean" wrote in message
news:
Très fort l'opérateur "&"! Il y a peut-être l'équivalent dans le .Net
Framework, mais là mes compétences ont leurs limites.


Ca vaudra la peine de s'y repencher la pluie revenue :-)

Sinon j'ai testé votre code et il fonctionne ici en Belgique :-)

Juste quelque chose qui me semble curieux.
En mettant le contenu dans un fichier ps1 et en l'exécutant dans la console
PowerShell "compare" n'est pas reconnu par l'interpréteur.
Ca fonctionne en mettant "compare-objet".
Bug ?


Oubli de ma part... J'ai la ligne suivante dans mon profil qui crèe
automatiquement des alias pour toutes les commandes portant sur "object":
gcm -noun object|%{set-alias $_.Verb $_ -ea silentlycontinue}

Il faut donc bien remplacer "compare" par "compare-object". :-)

Jacques


On s'est croisé :-)

--
Jean - JMST
Belgium



Avatar
Jacques Barathon [MS]
"Jacques Barathon [MS]" wrote in message
news:%
"Michel Claveau" <Enleverles wrote in message
news:
Re !

Dans le même genre, voici un script qui va trouver les lignes que l'on
trouve identiques, dans deux fichiers textes différents :

.pyt
s=Set(lload('t1.txt'))
r=Set(lload('t2.txt'))
lwrite('intersect.txt',(s & r))
quit

J'aimerais bien savoir comment c'est possible en PS...


Très fort l'opérateur "&"! Il y a peut-être l'équivalent dans le .Net
Framework, mais là mes compétences ont leurs limites.
En l'état actuel de mes connaissances de PowerShell, j'ai la solution
suivante:

$t1 = type t1.txt
$t2 = type t2.txt
$intersect = compare $t1 $t2 -inc | where {$_.SideIndicator -eq "=="}
$intersect | foreach {$_.InputObject} > intersect.txt

Là évidemment, PowerShell est un peu plus verbieux que Python. A moins que
quelqu'un ait mieux? Après tout, je ne prétends pas être Le représentant
de PowerShell sur Terre :-)


Je me compliquais la vie inutilement! Il suffit d'utiliser
l'opérateur -contains:

type t1.txt | ? {(type t2.txt) -contains $_} > t3.txt

Et voilà ;-)

Jacques


1 2 3 4