L'Unix d'IBM (AIX) propose une option intéressante pour la commande grep qui permet de récupérer un paragraphe complet, en précisant le séparateur de paragraphe :
grep -p "PATTERN" FILENAME
Par défaut, le séparateur est une ligne vide, mais on peut le préciser en l'ajoutant après l'option. Par exemple :
grep -p"separateur" "PATTERN" FILENAME
Sous Linux, le gnu grep ne propose pas cette option. Il reste cependant l'option awk ou perl. En utilisant awk, nous disposons de deux formulations différentes :
awk 'BEGIN{RS=ORS="\n\n";FS=OFS="\n"} /PATTERN/' FILENAMES
ou
awk -v RS="" -v ORS="\n\n" '/PATTERN/' FILENAMES
Par exemple, pour rechercher un groupe LDAP dans un fichier LDIF :
awk 'BEGIN{RS=ORS="\n\n";FS=OFS="\n"} /dn: cn=AdminUsers,ou=groups,dc=example,dc=com/' Export-Full.ldif
ou avec l'autre option :
# time awk -v RS="" -v ORS="\n\n" '/cn=AdminUsers,ou=groups,dc=example,dc=com/' Export-Full.ldif
Catégorie