extraire les lignes de configuration de /etc/squid/squid.conf Le sujet est résolu

Demande d'aide : c'est ici.
Répondre
tony
Membre
Membre
Messages : 195
Inscription : 10 juil. 2023, 00:54
Status : Hors-ligne

salut ,
afin d'y voir plus clair sur ce qui est pré-configuré dans les 8574 lignes du fichier /etc/squid/squid.conf j'ai voulu en extraire les lignes non commentées . Donc en langage courant = négation de "trouver les lignes débutant par #" , que je traduis en langage bash par :
  • 1-grep '^#' fichier pour les lignes commentées
  • 2-grep '!^#' fichier pour celles qui ne le sont pas
J'ai testé 1- sur .bashrc et ça a l'air de fonctionner mais 2- ne marche pas et la commande extrait les lignes qui commencent par ## dans la config de Squid . Il me faut utiliser grep "^[^#]" fichier ( merci le web ) assez ésotérique pour moi .

Pourquoi l'opérateur de négation logique ne marche pas dans la commande 2- ?

ps 1 : j'ai testé grep -v '^#' qui fonctionne sur un fichier très simple mais la présentation obtenue avec Squid n'est pas terrible ( il faudrait enlever les lignes vierges je suppose )

ps 2 : grep -v '^#' | grep strings élimine les lignes vierges mais ça ne résout pas ma question sur le !

ps3 : grep -v '^#' | less -sN est encore mieux
Debian 11 / Xfce
tony
Membre
Membre
Messages : 195
Inscription : 10 juil. 2023, 00:54
Status : Hors-ligne

Si j'ai bien compris , au moins pour Linux : dans la recherche d'un motif , par exemple "^[^#]" , [motif à chercher] définit une classe un ensemble de caractères et dans ce cas le 1er caret est un opérateur de négation . Voilà qui est concis quand on peut le décrypter . En tout cas ça m'a l'air de coller avec le résultat de la recherche .

Donc tant pis pour le ! mal placé dans ma recherche , pb résolu .

Je ne sais pas d'où proviennent les règles d'utilisation des opérateurs mais c'est un véritable sac de nœuds . L'utilisation de la commande grep les talonnent de près .
Debian 11 / Xfce
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3548
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

Salut!

grep -vE ^'(#|$)' <fichier>
ou
egrep -v ^'(#|$)' <fichier>

@+
**Simple Utilisateur** -- Debian stable - XFCE
tony
Membre
Membre
Messages : 195
Inscription : 10 juil. 2023, 00:54
Status : Hors-ligne

dezix a écrit : 27 mai 2024, 19:23 Salut!

grep -vE ^'(#|$)' <fichier>
ou
egrep -v ^'(#|$)' <fichier>

@+
effectivement ça fonctionne bien et pas de problème de lignes vierges qui s'affichent et rendent la lecture difficile . Il me reste à décrypter la commande .

Merci pour l'info .

ps 1 : j'ai fini par comprendre cette commande et pourquoi elle élimine les lignes vides , mais le plus important est qu'elle m'a montré à quoi pouvait servir la forme "egrep" de "grep" , forme que je rencontrais parfois sans m'en inquiéter plus que ça .

Conclusion personnelle = au vu de mes connaissances limitées , dans mon cas la meilleure méthode n'est pas la plus concise mais celle qui utilise la commande less -sN pour imposer la forme de l'affichage car elle garde le découpage de l'original , permet de savoir quelles lignes de la pré-configuration sont accompagnées d'un commentaire et donc de facilement s'y référer en cas de besoin . Le terrain est préparé pour une autre situation similaire .
Debian 11 / Xfce
Répondre