J'ai un fichier au format suivant:
--- V1 ---
Hi there
--- V2 ---
--- V3 ---
What's good
--- V4 ---
--- V5 ---
--- V6 ---
Je souhaite utiliser une sorte de script bash pour supprimer les lignes commençant par trois tirets non suivis immédiatement par une ligne ne comportant PAS trois tirets, par exemple:
--- V1 ---
Hi there
--- V3 ---
What's good
Je peux facilement supprimer TOUTES les lignes commençant par des tirets, mais je ne sais pas comment le faire en fonction de la ligne suivante (ou alternativement, en fonction de la ligne précédant les lignes sans tirets).
command-line
bash
grep
Birdie
la source
la source
Réponses:
Cherche toutes les lignes qui ne commencent pas par "---" et les affiche. "-B1" affiche la ligne immédiatement avant.
la source
Je suppose que "une sorte" signifie que vous n'insistez pas pour une pure bash. Si oui, alors awk peut le faire bien:
Quoi qu'il en soit, avec la même logique, un pur bash serait possible, mais avec beaucoup plus de codage.
la source