Supprimer tout un bloc dans un fichier via SED, AWK, etc..

Résolu
pcsystemd Messages postés 734 Statut Membre -  
dubcek Messages postés 19021 Statut Contributeur -
Bonjour,

Je souhaite via SED, AWK ou autre supprimer le second bloc sachant qu'un bloc est limité par

-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----


Exemple

Avant suppression
-----BEGIN CERTIFICATE-----
jfqkhkqmghkmklqfmhfqfggq
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
poyyitjhlhdfliurhlqk
-----END CERTIFICATE-----


Ce que je souhaite
-----BEGIN CERTIFICATE-----
jfqkhkqmghkmklqfmhfqfggq
-----END CERTIFICATE-----


Une idée?

Merci d'avance
A voir également:

3 réponses

dubcek Messages postés 19021 Statut Contributeur 5 638
 
hello
$ awk '{print $0} /--END CERTIFICATE--/ {exit}' fichier
-----BEGIN CERTIFICATE-----
jfqkhkqmghkmklqfmhfqfggq
-----END CERTIFICATE-----
$
1
dubcek Messages postés 19021 Statut Contributeur 5 638
 
{print $0} on imprime chaque ligne
/--END CERTIFICATE--/ {exit}' si la ligne contient --END CERTIFICATE-- on termine le awk

même chose mais on fait AND (&&) avec un compteur n qui vaut 0 au départ
$ awk '{print $0} /--END CERTIFICATE--/ && ++n==2 {exit}' fichier
-----BEGIN CERTIFICATE-----
jfqkhkqmghkmklqfmhfqfggq
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
poyyitjhlhdfliurhlqk
-----END CERTIFICATE-----
1
pcsystemd Messages postés 734 Statut Membre 23
 
Merci dubcek.

Possible d'avoir quelques explications sur cette commande?

Et une autre question en espérant ne pas abuser! Si j'ai trois blocs et que je veux garder que els deux premiers et supprimer le dernier?

Exemple

Avant
-----BEGIN CERTIFICATE-----
jfqkhkqmghkmklqfmhfqfggq
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
poyyitjhlhdfliurhlqk
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
mlmdflmkldsfdf
-----END CERTIFICATE-----


Après
-----BEGIN CERTIFICATE-----
jfqkhkqmghkmklqfmhfqfggq
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
poyyitjhlhdfliurhlqk
-----END CERTIFICATE-----



0