April 13 2022, 08:52#
regex - How to find patterns across multiple lines using grep? - Stack Overflow
Cas d'école : je cherche à savoir si la compression des logs est activée dans logrotate.conf
Voici ce que je recherche :
# uncomment this if you want your log files compressed
compress
Solution : utilisation de PCRE (Perl-Compatible Regular Expressions) avec grep
grep -Pzl '(?s)# uncomment this if you want your log files compressed.*\ncompress' /etc/logrotate.conf
-P
pour utiliser PCRE
-z
pour traiter l'entrée sur plusieurs lignes, chacune se terminant par un zéro à la place d'une nouvelle ligne
-l
liste uniquement les fichiers correspondants
(?s)
activer PCRE_DOTALL, ce qui veut dire qu'un point .
correspond à n'importe quel caractère ou nouvelle ligne
Tags : linux log logrotate grep perl