Question
Supprimer uniquement des lettres d1 fichier texte
- maycry
- Auteur du sujet
- Hors Ligne
- Membre premium
- Messages : 119
- Remerciements reçus 0
Exemple:
Get-MailboxStatistics -Server exchange |`
Select-Object TotalItemSize | Format-Table -AutoSize |`
Out-File C:\test.txt
une fois le text.txt ouvert, je récupérer les résultat qui sont par exemple
145555B
145556B
En bref je voudrais récupérer uniquement les chiffres numériques et donc supprimer la letrre B
si je fais un
(type c:\test.txt) -notmatch \"B\"
powershell efface la ligne entiere et non uniquement la lettre B
Connexion ou Créer un compte pour participer à la conversation.
- PASCAULT
- Hors Ligne
- Membre senior
- Messages : 78
- Remerciements reçus 0
Une méthode parmi d'autres:
(suppression du dernier caractère si un
[code:1](get-content c:test.txt)|foreach{$_.trimend(\"B\"«»)}[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
chris écrit:
Il est préférable de parser le texte avec des expressions régulières ([Regex] sous Powershell). Ne sachant si tu connais le sujet, voici un début :Bonjour En bref je voudrais récupérer uniquement les chiffres numériques et donc supprimer la letrre B
[code:1]
#match OK
$Str=$null
$Str=\"145555B\"
$Str= $Str -replace \"^([\d]*)([\D]*)`$\",'$1'
$Str;$Str=$null
#match OK
$Str=\"1B\"
$Str= $Str -replace \"^([\d]*)([\D]*)`$\",'$1'
$Str;$Str=$null
#match KO
$Str=\"B\"
$Str= $Str -replace \"^([\d]*)([\D]*)`$\",'$1'
$Str
$Str.length;$Str=$null
#match KO
$Str=\"B125\"
$Str= $Str -replace \"^([\d]*)([\D]*)`$\",'$1'
$Str
$Str.length
[/code:1]
pour info :
Ensuite il faut connaitre tous les cas possibles pour écrire la regex qui fonctionne pour tous les cas que tu as trouvés et/ou plausible.<br><br>Message édité par: BatchMan, à: 20/03/08 15:46\"^([\d]*)([\D]*)$\" = Regex
'$1' = Capture du groupe ([\d]*)
^ = Début de ligne
[\d] = Uniquement les chiffres, équivaut à [0-9]. 1 er groupe de capture -> $1
* = 0 ou n occurences d'un chiffre
[\D]* = 0 ou n occurences de n'importe quoi(Tab, space,...) (sauf des chiffres). Second groupe de capture -> $2
$ = fin de ligne
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Robin Lemesle
- Hors Ligne
- Modérateur
- Messages : 260
- Remerciements reçus 0
Robin MVP PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
Regular Expressions Cheat Sheet
Un court tutoriel sur [url=http://lgmorand.developpez.com/dotnet/regex/
]l'utilisation des expressions régulières en .Net[/url]
voir aussi :
technet.microsoft.com/en-us/magazine/cc137764.aspx
technet.microsoft.com/fr-fr/magazine/cc137764.aspx
ça donne les bases mais pas l'aspirine
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- PASCAULT
- Hors Ligne
- Membre senior
- Messages : 78
- Remerciements reçus 0
Mais Chris dans son exemple ne cherchait, semble t-il, qu'à supprimer la lettre \"B\" (correspondant aux octets probablement, vu la requête ), ce n'est donc vraiment pas sympa dès le début de lui faire manger de l'expression régulière... à moins qu'il connaisse déjà bien sûr !
Mais bon, c'est clair qu'il faut bien commencer un jour !
Merci Batchman pour les differents liens. (ça pourrait-être interessant de les rajouter dans les liens du site,non )
Je me permet de recréer tes liens ci-dessous, car à priori pb sur tes liens (copier /coller ? )
lgmorand.developpez.com/dotnet/regex/l'utilisation des expressions régulières en .Net:
technet.microsoft.com/en-us/magazine/cc137764.aspx
technet.microsoft.com/fr-fr/magazine/cc137764.aspx
Réference msdn:
msdn2.microsoft.com/en-us/library/1400241x(VS.85).aspx
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Supprimer uniquement des lettres d1 fichier texte