Je veux supprimer tout le texte entre (et y compris) deux chaînes dans tous les fichiers d'un répertoire. Pour un exemple, les fichiers ressemblent à ceci:Multiline sed option?
flag
bla bla bal
bla bla bla
endflag
etc..
C'est ce que je fais avec sed:
sed -i "s:flag.*endflag::m" *
Cependant, l'option 'm' ne fait pas partie de Sed. Tous les autres threads de débordement de pile de cette rubrique ont recours à perl, awk ou à un wrapper sed pour y parvenir. N'y a-t-il pas un moyen de dire à sed de faire correspondre les caractères newline?
double possible ([multiligne sed remplacer] http://stackoverflow.com/questions/ 1221245/sed-multiline-replace) –
Colin: ce thread a une solution partielle pour ce que j'essaie de faire: perl -ne 'print if! (M @^
$ @)' *. aspx * .htm */*. htm Mais cela ne fait qu'imprimer sur stdout. Comment utiliser cela pour remplacer dans chaque fichier? – nnybyS'il existe des outils pour faciliter les choses, pourquoi ne pas les utiliser? pourquoi faut-il s'en tenir à sed? – ghostdog74