Question
[Résolu] Remplacer une ligne dans une chaine
- Ossy
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 10 ans 11 mois #19396
par Ossy
[Résolu] Remplacer une ligne dans une chaine a été créé par Ossy
Bonjour
J'ai une chaine multilines. J'ai besoin d'effacer des lignes entier avec un mot de clé.
Pour mes test le mot de clé est ###DELETE###. Il peut être au début, milieu ou à la fin.
J'essai avec cette commande mais ca ne marche pas. snif
[code:1]$texte -replace \"(?m)^*###DELETE###*\r?\n\",\"\"[/code:1]
Merci d'avance pour votre aide.
salutations
Ossy<br><br>Message édité par: Arnaud, à: 7/04/15 11:16
J'ai une chaine multilines. J'ai besoin d'effacer des lignes entier avec un mot de clé.
Pour mes test le mot de clé est ###DELETE###. Il peut être au début, milieu ou à la fin.
J'essai avec cette commande mais ca ne marche pas. snif
[code:1]$texte -replace \"(?m)^*###DELETE###*\r?\n\",\"\"[/code:1]
Merci d'avance pour votre aide.
salutations
Ossy<br><br>Message édité par: Arnaud, à: 7/04/15 11:16
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 10 ans 11 mois #19397
par Philippe
Réponse de Philippe sur le sujet Re:Remplacer une line dans une chaine
salut Ossy
ceci fonctionne :
[code:1]
$texte = @(\"test de texte en text 1111
###DELETE###test de texte en text 2222
test ###DELETE###de texte en text 3333
test de texte en text 4444###DELETE###
test de texte en text 5555
test de texte ###DELETE###en text 6666
test de texte en text 7777\"«»)
$texte -replace \".*###DELETE###.*\r\n\",\"\"
# resultat
test de texte en text 1111
test de texte en text 5555
test de texte en text 7777[/code:1]
ceci fonctionne :
[code:1]
$texte = @(\"test de texte en text 1111
###DELETE###test de texte en text 2222
test ###DELETE###de texte en text 3333
test de texte en text 4444###DELETE###
test de texte en text 5555
test de texte ###DELETE###en text 6666
test de texte en text 7777\"«»)
$texte -replace \".*###DELETE###.*\r\n\",\"\"
# resultat
test de texte en text 1111
test de texte en text 5555
test de texte en text 7777[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Ossy
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 10 ans 11 mois #19398
par Ossy
Réponse de Ossy sur le sujet Re:Remplacer une line dans une chaine
Salut 6ratgus
Merci pour ton aide.
Maintenant je suis encore plus perdu.
Ton test marche bien, mais avec mon fichier non
Voici mon dernier code:
$texte = Get-Content ./cgcompta1@toto.com.htm
echo $texte
echo \"==========================\"
$texte -replace \".*###DELETE###.*\r\n\",\"\"
echo \"==========================\"
Le fichier htm est UTF-8, mais en ANSI le même résultat.
Merci pour ton aide.
Maintenant je suis encore plus perdu.
Ton test marche bien, mais avec mon fichier non
Voici mon dernier code:
$texte = Get-Content ./cgcompta1@toto.com.htm
echo $texte
echo \"==========================\"
$texte -replace \".*###DELETE###.*\r\n\",\"\"
echo \"==========================\"
Le fichier htm est UTF-8, mais en ANSI le même résultat.
Connexion ou Créer un compte pour participer à la conversation.
- Ossy
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 10 ans 11 mois #19399
par Ossy
Réponse de Ossy sur le sujet Re:Remplacer une line dans une chaine
Mieux avec le fichier.
J'ai renommer le fichier en txt au lieu de htm, mais ca ne change rien pour moi.
++
Ossy
J'ai renommer le fichier en txt au lieu de htm, mais ca ne change rien pour moi.
++
Ossy
La pièce jointe cgcompta1_toto.txt est absente ou indisponible
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 10 ans 11 mois #19400
par Philippe
Réponse de Philippe sur le sujet Re:Remplacer une line dans une chaine
c'est la même chose sans le /r/n
soit :
[code:1]
$texte = Get-Content c:\test.txt
#echo $texte
echo \"==========================\"
texte -replace \".*###DELETE###.*\",\"\"[/code:1]
par contre tu aura des lignes vides
si tu ne les veux pas dans ton fichier
tu doit faire ceci au moment d'enregistré :
[code:1]
$texte | where {$_ -ne \"\"} | Set-Content c:\test.txt
[/code:1]
soit :
[code:1]
$texte = Get-Content c:\test.txt
#echo $texte
echo \"==========================\"
texte -replace \".*###DELETE###.*\",\"\"[/code:1]
par contre tu aura des lignes vides
si tu ne les veux pas dans ton fichier
tu doit faire ceci au moment d'enregistré :
[code:1]
$texte | where {$_ -ne \"\"} | Set-Content c:\test.txt
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Ossy
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 10 ans 11 mois #19401
par Ossy
Réponse de Ossy sur le sujet Re:Remplacer une line dans une chaine
Ok merci beaucoup
Il me semble que j'ai encore un problème.
Je fait un retour demain.
Dans tous les cas, un GRAND MERCI.
++
Ossy
Il me semble que j'ai encore un problème.
Je fait un retour demain.
Dans tous les cas, un GRAND MERCI.
++
Ossy
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.050 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Résolu] Remplacer une ligne dans une chaine