#1 Le 06/09/2010, à 16:43
- Elemmire
script pour conf PostgreSQL sans commentaires
Etant en train de faire des dossiers d'exploitation de mes serveurs, je voulais y inclure les options de configuration de PostgreSQL (fichier postgresql.conf)
Ce fichier possède de nombreux commentaires dont je n'ai pas besoin dans mon document.
J'ai mis un peu de temps avant de trouver comment faire pour enlever tous les commentaires mais voici ma solution :
cat postgresql.conf | cut -d# -f1 | grep -v $'^\t' |sed '/ ^\n/d; /^ *$/d'
ça peut toujours servir à d'autres ...
Hors ligne
#2 Le 06/09/2010, à 17:27
- sputnick
Re : script pour conf PostgreSQL sans commentaires
Ah, un compétiteur pour les useless * awards !
http://partmaps.org/era/unix/award.html
J'en presque
awk '!/^#/ && !/^$/{print}' postgresql.conf
Qui veut faire quelque chose trouve un moyen, qui ne veut rien faire trouve une excuse. Proverbe arabe
https://sputnick.fr
En ligne
#3 Le 06/09/2010, à 22:16
- Elemmire
Re : script pour conf PostgreSQL sans commentaires
le problème avec le fichier de conf de PostgreSQL c'est qu'il y a des commentaires en fin de ligne et d'autres précédées par de nombreuses tabulations :
# - Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost', '*' = all
# (change requires restart)
port = 5432 # (change requires restart)
max_connections = 100 # (change requires restart)
# Note: Increasing max_connections costs ~400 bytes of shared memory per
# connection slot, plus lock space (see max_locks_per_transaction).
j'avoue certe que l'on peut se passer de la commande cat mais ta solution ne donne cependant pas le résultat attendu ... merci quand meme pour ta participation au débat
Si tu preferes sans le cat ... on obtient alors :
cut -d# -f1 postgresql.conf | grep -v $'^\t' |sed '/ ^\n/d; /^ *$/d'
mais j'avoue ne pas etre un expert de la commande awk qui doit certainement permettre de faire la meme chose
Dernière modification par Elemmire (Le 06/09/2010, à 22:18)
Hors ligne
#4 Le 06/09/2010, à 22:48
- sputnick
Re : script pour conf PostgreSQL sans commentaires
awk -F# '!/^( *|\t*)?#/ && !/^$/{print $1}' postgresql.conf
C'est pas vraiment que je préfère, mais c'est juste plus propre et on economise un processus ( je voit d'ici les gens qui disent que c'est pas beaucoup de ressources et que je pinaille, mais c'est avec les petits ruisseaux qu'on fait les grandes rivières... ). Un garagiste démonte pas ses pneus avec une baramine que je sache
Qui veut faire quelque chose trouve un moyen, qui ne veut rien faire trouve une excuse. Proverbe arabe
https://sputnick.fr
En ligne
#5 Le 07/09/2010, à 08:23
- Elemmire
Re : script pour conf PostgreSQL sans commentaires
ton argument est tout à fait bon ... on remarquera au passage que si l'on utilise la commande time on obtient les résultat suivants :
pour awk :
real 0m0.004s
user 0m0.000s
sys 0m0.000s
pour cut + grep + sed :
real 0m0.003s
user 0m0.010s
sys 0m0.020s
il est certain que si ce genre de script est lancé toutes les secondes cela peut avoir de l'importance au niveau des ressources ... mais ce n'est pas mon cas alors il est vrai qu'on se laisse aller un peu à la facilité !
En tout cas merci à toi d'apporter une autre vision des choses.
Dernière modification par Elemmire (Le 07/09/2010, à 08:24)
Hors ligne
#6 Le 07/09/2010, à 11:08
- sputnick
Re : script pour conf PostgreSQL sans commentaires
Je n'obtient pas les mêmes résultats que toi, awk est plus rapide.
Sur un "Intel(R) Core(TM)2 Quad CPU Q9650 @ 3.00GHz" (on peut appeler ça un processeur veloce)
$ time awk -F# '!/^( *|\t*)?#/ && !/^$/{print $1}' /tmp/l 1>/dev/null
real 0m0.004s
user 0m0.003s
sys 0m0.000s
$ time cut -d# -f1 /tmp/l | grep -v $'^\t' |sed '/ ^\n/d; /^ *$/d' 1>/dev/null
real 0m0.005s
user 0m0.003s
sys 0m0.007s
Sur un petit "ARMv7 Processor rev 2 (v7l)" d'un Android nessus one ou c'est bien plus flagrant :
$ time awk -F# '!/^( *|\t*)?#/ && !/^$/{print $1}' test* 1>/dev/null
real 0m 0.08s
user 0m 0.07s
sys 0m 0.01s
$ time cut -d# -f1 test* | grep -v $'^\t' |sed '/ ^\n/d; /^ *$/d' 1>/dev/null
real 0m 0.17s
user 0m 0.11s
sys 0m 0.00s
Dernière modification par sputnick (Le 07/09/2010, à 11:10)
Qui veut faire quelque chose trouve un moyen, qui ne veut rien faire trouve une excuse. Proverbe arabe
https://sputnick.fr
En ligne
#7 Le 07/09/2010, à 17:19
- Elemmire
Re : script pour conf PostgreSQL sans commentaires
j'ai du faire le test avec awk d'abord qui as du prendre le temps de charger le fichier en mémoire ... chose que n'a pas eu besoin de faire la commande cut + grep + sed !
Hors ligne