Remplacer en saut de ligne par un caractère
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour à tous,
Voici le thème, j'aimerais remplacer un saut de ligne par un EndIf.
Voici mon fichier :
If FileExists (@HomeDrive & "\Cookies\*.*") Then FileDelete (@HomeDrive & "\Cookies\*.*")
If FileExists (@HomeDrive & "\Temp\*.*") Then FileDelete (@HomeDrive & "\Temp\*.*")
(...)
J'ai utilisé la commande : sed -e "s/$/\\n/", pour créer un espace entre les lignes.
Et j'espérais qu'un : sed -e 's/\\n/EndIf/g', me donnerait ce que je voulais, mais en vain...
Fichier voulu après changement :
If FileExists (@HomeDrive & "\Cookies\*.*") Then FileDelete (@HomeDrive & "\Cookies\*.*")
EndIf
If FileExists (@HomeDrive & "\Temp\*.*") Then FileDelete (@HomeDrive & "\Temp\*.*")
EndIf
(...)
Merci à vous :-)
?? Saachaa ?
Contributeur CCM
Voici le thème, j'aimerais remplacer un saut de ligne par un EndIf.
Voici mon fichier :
If FileExists (@HomeDrive & "\Cookies\*.*") Then FileDelete (@HomeDrive & "\Cookies\*.*")
If FileExists (@HomeDrive & "\Temp\*.*") Then FileDelete (@HomeDrive & "\Temp\*.*")
(...)
J'ai utilisé la commande : sed -e "s/$/\\n/", pour créer un espace entre les lignes.
Et j'espérais qu'un : sed -e 's/\\n/EndIf/g', me donnerait ce que je voulais, mais en vain...
Fichier voulu après changement :
If FileExists (@HomeDrive & "\Cookies\*.*") Then FileDelete (@HomeDrive & "\Cookies\*.*")
EndIf
If FileExists (@HomeDrive & "\Temp\*.*") Then FileDelete (@HomeDrive & "\Temp\*.*")
EndIf
(...)
Merci à vous :-)
?? Saachaa ?
Contributeur CCM
8 réponses
-
Salut,
$ cat plop If FileExists (@HomeDrive & "\Cookies\*.*") Then FileDelete (@HomeDrive & "\Cookies\*.*") If FileExists (@HomeDrive & "\Temp\*.*") Then FileDelete (@HomeDrive & "\Temp\*.*") If FileExists (@HomeDrive & "\Cookies\*.*") Then FileDelete (@HomeDrive & "\Cookies\*.*") If FileExists (@HomeDrive & "\Temp\*.*") Then FileDelete (@HomeDrive & "\Temp\*.*") $ sed '/^$/! s/$/\nEndif/' plop If FileExists (@HomeDrive & "\Cookies\*.*") Then FileDelete (@HomeDrive & "\Cookies\*.*") Endif If FileExists (@HomeDrive & "\Temp\*.*") Then FileDelete (@HomeDrive & "\Temp\*.*") Endif If FileExists (@HomeDrive & "\Cookies\*.*") Then FileDelete (@HomeDrive & "\Cookies\*.*") Endif If FileExists (@HomeDrive & "\Temp\*.*") Then FileDelete (@HomeDrive & "\Temp\*.*") Endif $
;-))
-
Essaye ceci
johand@osiris: ~/src/CCM/sed $ cat if.dat If FileExists (@HomeDrive & "\Cookies\*.*") Then FileDelete (@HomeDrive & "\Cookies\*.*") If FileExists (@HomeDrive & "\Temp\*.*") Then FileDelete (@HomeDrive & "\Temp\*.*") johand@osiris: ~/src/CCM/sed $ sed -e '/^if/I s/$/ ENDIF/' < if.dat If FileExists (@HomeDrive & "\Cookies\*.*") Then FileDelete (@HomeDrive & "\Cookies\*.*") ENDIF If FileExists (@HomeDrive & "\Temp\*.*") Then FileDelete (@HomeDrive & "\Temp\*.*") ENDIF johand@osiris: ~/src/CCM/sed $ sed -e '/^if/I s/$/\nENDIF/' < if.dat If FileExists (@HomeDrive & "\Cookies\*.*") Then FileDelete (@HomeDrive & "\Cookies\*.*") ENDIF If FileExists (@HomeDrive & "\Temp\*.*") Then FileDelete (@HomeDrive & "\Temp\*.*") ENDIF
Gates gave ^H sold you the windows.
GNU gave us the whole house.(Alexandrin) -
Salut Zipe ;-)
Toujours à l'heure :-)))
Dis moi, tu peux m'expliquer ! et /a stp ?
Merci, je teste ça :-)
-
/^$/!
Si ce n'est pas une ligne vide. Le "!" exprime la négation et le "^$" représente une ligne vide, le " symbolisant le début de la ligne, et le "$" la fin.
a\
La commande pour ajouter (a = append). On ajoute ce qui se trouve après l'anti slash..
On peut aussi l'écrire :sed '/^$/! a\ Endif ' fichier
PS. Dans le post précédent, le "/" en fin de "Endif" est en trop ;-( -
-
-
Re,
@Jisisv,
Ta commande fonctionne, mais je viens de me rendre compte que je dois sauter une ligne après le Then, sinon ça ne fonctionne pas.
Comme ceci :
If FileExists (@HomeDrive & "\Cookies\*.*")
Then FileDelete (@HomeDrive & "\Cookies\*.*")
Endif
Je vais chercher de mon côté et je vous dis quoi :-) -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Vi :-)
Mon texte actuel :
If FileExists (@HomeDrive & "\Cookies\*.*") Then FileDelete (@HomeDrive & "\Cookies\*.*")
EndIf
If FileExists (@HomeDrive & "\Temp\*.*") Then FileDelete (@HomeDrive & "\Temp\*.*")
EndIf
(...)
Le texte désiré :
If FileExists (@HomeDrive & "\Cookies\*.*")
Then FileDelete (@HomeDrive & "\Cookies\*.*")
EndIf
If FileExists (@HomeDrive & "\Temp\*.*")
Then FileDelete (@HomeDrive & "\Temp\*.*")
EndIf
(...)
-
$ cat plop If FileExists (@HomeDrive & "\Cookies\*.*") Then FileDelete (@HomeDrive & "\Cookies\*.*") EndIf If FileExists (@HomeDrive & "\Temp\*.*") Then FileDelete (@HomeDrive & "\Temp\*.*") EndIf (...) $ sed '/If .*Then/{ s/Then /\n&/}' plop If FileExists (@HomeDrive & "\Cookies\*.*") Then FileDelete (@HomeDrive & "\Cookies\*.*") EndIf If FileExists (@HomeDrive & "\Temp\*.*") Then FileDelete (@HomeDrive & "\Temp\*.*") EndIf (...) $
-
-
Ah oui quand même... tu m'étonnes que je ne trouvais pas...
Tu peux m'expliquer ce que tu as fais si ça ne te dérange pas parce-que je suis largué...
Merci ;-)-
Pour être plus exact j'aurai du écrire "/^If .*Then /" au lieu de "/If .*Then/"
/^If .*Then/
Si on trouve un motif qui commence (^) par If (suivi d'un espace) puis d'un ou plusieurs caractères, voire d'aucun, suivi ensuite de Then lui même suivi d'un espace, appliquer la ou les commande(s) qui se trouve(nt) entre les accolades
{
Début regroupement de commandes
s/Then /\n&/
On substitue "Then " (et l'espace derrière), par un saut de ligne (\n) et lui même (l'esperluette "&" symbolisant le motif présent dans la partie gauche de l'expression).
}
Fin regroupement de commandes -
Ahhh d'accord, merci Zipe :-))
Mais dis moi, lorsque j'ouvre ceci sous Windows (que c'est de la programmation Autoit), il me met ceci :
If FileExists (@HomeDrive & "\Cookies\*.*") 0Then FileDelete (@HomeDrive & "\Cookies\*.*")
EndIf
0 = Un caractère en forme de carré, pour dire que le symbole n'est pas compris par l'éditeur de texte (notepad).
Tandis que sur Debian cela fonctionne très bien -
-
-
-
-
Ceci, c'est le fichier terminé, en l'occurrence :
If FileExists (@HomeDrive & "\Cookies\*.*")
Then FileDelete (@HomeDrive & "\Cookies\*.*")
EndIf
If FileExists (@HomeDrive & "\Temp\*.*")
Then FileDelete (@HomeDrive & "\Temp\*.*")
EndIf
(...)
Mon fichier vient de Gedit, pas de Windows, il a été créé sur ma Debian. J'ai rajouté les "^M", pour qu'il soit lisible sur Windaube.
J'utilise sed sur Debian.
Cat -A ->
If FileExists (@UserProfileDir & "\Local Settings\Temporary Internet Files\Content.IE5\*.*") $ <--
Then FileDelete (@UserProfileDir & "\Local Settings\Temporary Internet Files\Content.IE5\*.*")^M$
Endif^M$
^M$
Pas de ^M, c'est sûrement ça le problème...
Je supprime tous les ^M, et je les rajoute voir si ça passe ;-))
?? Saachaa ?
Contributeur CCM -
Une dernier truc et je clos le sujet :-)
J'ai trop prie l'habitude du shell, et ceci ne passe pas :
If FileExists (@HomeDrive & "\Cookies\*.*")
Then FileDelete (@HomeDrive & "\Cookies\*.*")
EndIf
If FileExists (@HomeDrive & "\Temp\*.*")
Then FileDelete (@HomeDrive & "\Temp\*.*")
EndIf
(...)
Ce qu'il me faudrait, c'est cela :
If FileExists (@HomeDrive & "\Cookies\*.*") Then
FileDelete (@HomeDrive & "\Cookies\*.*")
EndIf
If FileExists (@HomeDrive & "\Temp\*.*") Then
FileDelete (@HomeDrive & "\Temp\*.*")
EndIf
(...)
Désolé ^^