Sed/perl- recherche d'un motif et suppresion

Résolu/Fermé
Nico - 27 janv. 2010 à 11:12
 Nico - 27 janv. 2010 à 14:58
Bonjour,

Entres autres choses, j'aimerais rechercher dans un fichier un motif précis, par exemple, la ligne contenant "*cut here*" puis supprimer toutes les lignes qui suivent ce motif jusqu'à la dernière.

Je me disais que Perl, intégré dans un script shell, pourrais faire me faire ça ... mais je n'ai pas la moindre connaissance dans ce language. Quelqu'un aurait il une idée ou une piste à explorer ? D'avance merci !

Nico

3 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
27 janv. 2010 à 12:47
Salut,

La ligne contenant le motif doit-elle être conservée ?
Si oui :

sed '/\*cut here\*/,${//b;d}' fichier

Sinon :

sed '/\*cut here\*/,$d' fichier

;-))
3
Super c'est exactement ce que je souhaitais ! Merci beaucoup pour la qualité et la rapidité de ta réponse :)
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
27 janv. 2010 à 12:30
sed 's/\*cut here\*//g' fichier
ne fonctionnerai pas ?
Sinon, perl+expression régulières sur internet.
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
27 janv. 2010 à 13:28
OUPS, en effet, mal lu l'énoncer.
Oublie ce que j'ai di.
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
27 janv. 2010 à 12:44
hello
$ cat a1
1
2
3
4
cut here
5
6
7
8
9
$ sed -e '/cut here/,$ d' < a1
1
2
3
4
$ 
0