Question [Résolu] Remplacer une ligne dans une chaine

Plus d'informations
il y a 10 ans 11 mois #19396 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

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

Plus d'informations
il y a 10 ans 11 mois #19397 par Philippe
salut Ossy

ceci fonctionne :

[code:1]
$texte = @(\&quot;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\&quot;«»)

$texte -replace \&quot;.*###DELETE###.*\r\n\&quot;,\&quot;\&quot;

# 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.

Plus d'informations
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 \&quot;==========================\&quot;
$texte -replace \&quot;.*###DELETE###.*\r\n\&quot;,\&quot;\&quot;
echo \&quot;==========================\&quot;


Le fichier htm est UTF-8, mais en ANSI le même résultat.

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

Plus d'informations
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

La pièce jointe cgcompta1_toto.txt est absente ou indisponible

Pièces jointes :

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

Plus d'informations
il y a 10 ans 11 mois #19400 par Philippe
c'est la même chose sans le /r/n

soit :

[code:1]
$texte = Get-Content c:\test.txt
#echo $texte
echo \&quot;==========================\&quot;
texte -replace \&quot;.*###DELETE###.*\&quot;,\&quot;\&quot;[/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 \&quot;\&quot;} | Set-Content c:\test.txt
[/code:1]

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

Plus d'informations
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

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

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