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 : 6311
- 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 : 6311
- 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...
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