Recherches ocurrences dans les dernières lignes

En effet je suis allé un peu vite. Sed est vraiment une grosse daube absolument pas KISS, parce qu’en principe en programmation on travail sur des intervalles semi-ouvert ([début, fin[) !

Il va donc falloir passer un cran au dessus, parce que c’est qu’ils commencent à me chauffer ces outils :

Et voila. Pour l’explication sans entrer dans l’apprentissage de perl. L’option -p fait afficher toutes les lignes une à une et le code que l’on donne en option à -e est exécuté avant le print. Et là on lui dis de partir si la ligne commence par Explanation. L’option -i a le même comportement qu’avec sed.

Voila. :smiley: (non mais ho)

@Syam:

des petits muscles ? :033 te fâche pas, je rigoles

Ben ça veut dire qu’elle est fixe cette ligne, non ? tu devrais être content là ! :mrgreen:
alors un dernier coup de sed permet de virer ce “repère fixe”

sed -n "0,/^Expla/p" /etc/apt/preferences|sed '$d'
vite fait sans -i~ et tout ça, c’est le job de Ricardo, on va pas lui enlever le plaisir de travailler :stuck_out_tongue: pas taper please moi fragile :mrgreen:

@MisterFreez:
Bravo ! ça à l’air parfait. Par contre :

sudo find /etc -type f -exec grep -iE '(^| )sed ' '{}' \; |wc -l 156 sudo find /etc -type f -exec grep -iEq '(^| )sed ' '{}' \; -print|wc -l 68
montre que sed est utilisé 156 fois au sein de 68 scripts dans l’arborescence d’ /etc

Pour perl:

sudo find /etc -type f -exec grep -iE '(^| )perl ' '{}' \; |wc -l 12 sudo find /etc -type f -exec grep -iEq '(^| )perl ' '{}' \; -print|wc -l 5
12 fois seulement au sein de 5 scripts

Quand à awk :

sudo find /etc -type f -exec grep -iE '(^| )awk ' '{}' \; |wc -l 79 sudo find /etc -type f -exec grep -iEq '(^| )awk ' '{}' \; -print|wc -l 40
79 fois dans 40 scripts

Donc, dans l’ordre d’importance dans les scripts systemes :
1 sed
2 awk
3 perl

ya pas foto, qu’on trouve sed chiand ou pas faut faire avec … :open_mouth: :mrgreen:

Je vais m’amuser a faire un petit script qui va comptabiliser la fréquence d’emploi des autres cdes, dans une autre vie …

@Rantanplan aussi ! > D’une part je fais pas mes scripts en fonction du langage dans le quel tourne le système. D’autre part c’était une humeur. Sed n’y est pour rien c’est vim->vi->ed voir même ex qui sont derrière tout ça (sous prétexte d’être user friendly).

Il n’en reste pas moins que si au bout d’un moment ça m’embête trop je met les mains dans perl et ça passe comme dans du beur.

[quote=“MisterFreez”]@Rantanplan aussi ! > D’une part je fais pas mes scripts en fonction du langage dans le quel tourne le système. D’autre part c’était une humeur. Sed n’y est pour rien c’est vim->vi->ed voir même ex qui sont derrière tout ça (sous prétexte d’être user friendly).

Il n’en reste pas moins que si au bout d’un moment ça m’embête trop je met les mains dans perl et ça passe comme dans du beur.[/quote]

Bah aprés tout c’est le résultat qui compte. Je connais trés peu perl quoique j’en ai eu un vague aperçu en bossant le bouquin d’Erickson en 2009. C’est bien pratique !

A part ça rapidement : le nombre de chacune des commandes suivantes dans l’arborecescence d’ /etc (Edit : j’ai modifié le code ci-dessous le mercredi 7 décembre 2011, 02:13:15 )

[code]for cde in sed awk perl tail head cat echo for while find ls;do echo -ne “$cde\t:”;sudo find /etc -type f -exec grep -iE "(^| )$cde " ‘{}’ ; |wc -l;done|sed ‘s|^(.:)([[:digit:]]+)$|\2 \1|’|sort -gr|sed 's|^([[:digit:]]+) (.$)|\2\t\1|’

for : 2760
echo : 269
sed : 169
while : 119
find : 86
awk : 79
cat : 58
ls : 44
head : 20
perl : 14
tail : 5
[/code]
Ça peut aider à avoir une idée des commandes à étudier pour pouvoir décortiquer le système ? suggestion de cdes à ajouter bienvenues ! (la cde for donne sûrement un faux résultat ( for example … ) )

Donc toi tu préfère le perl ? tu connais un bon bouquin ou des liens pour le bosser vite fait ?

Je suis pas en grand fan de python. perl est nettement plus fun et agréable à utiliser.
Je connais un bouquin pas mal ouai. perlmoderne.fr/

C’est le seul que j’ai, mais j’ai à peut près tout appris avec internet.

Je suis pas en grand fan de python. perl est nettement plus fun et agréable à utiliser.
Je connais un bouquin pas mal ouai. perlmoderne.fr/

C’est le seul que j’ai, mais j’ai à peut près tout appris avec internet.[/quote]

Ouch ! 450 pages … pas pour moi :017 :033

Je suis pas en grand fan de python. perl est nettement plus fun et agréable à utiliser.
Je connais un bouquin pas mal ouai. perlmoderne.fr/

C’est le seul que j’ai, mais j’ai à peut près tout appris avec internet.[/quote]

Ouch ! 450 pages … pas pour moi :017 :033 [/quote]
A mais c’est pas de ce genre là. C’est le genre de bouquin où tu va piocher c’est vrai que c’est peut être pas le mieux pour apprendre. J’ai un PDF de 800 pages qui est plus à propos, mais je n’ai pas les moyens de le publier avant ce soir (en fait je ne sais même pas les droits que j’ai dessus). Tu pourrais le commencer et le finir quand tu veut.

EDIT : Après vérification, j’ai le droit de le publier :
barmic.fr/owncloud/apps/files_s … fde5628896

En fait, avec sed, on peut préciser des n° de ligne ou des expressions régulières pour définir une plage de ligne à traiter. Le $ est considéré comme un n° de ligne. Ce qui donne :

sed i~ '/^Explanation/,$d' /etc/apt/preferences

:033

Je pensais l’avoir tenter en vain … bizarre faudras que je regarde mon historique. :think:

En fait, avec sed, on peut préciser des n° de ligne ou des expressions régulières pour définir une plage de ligne à traiter. Le $ est considéré comme un n° de ligne. Ce qui donne :

sed i~ '/^Explanation/,$d' /etc/apt/preferences

:033[/quote]
Ça fonctionne mieux avec un tiret devant le ‘i’ :wink:

Question : ,$d sans / entre , et $ et entre $ et d ?

désolé pour l’oubli du "-"
réponse à la question : oui, sans les "/"
le formalisme /ER[E]/ est uniquement utilisé pour rechercher les lignes contenant le pattern (motif) de L’Expression Rationnelle [Etendue]
Si l’on veut référencer des n° de lignes, on ne les met pas.

Exemples :
De la ligne 4 à la ligne 13 : sed '4,13 ’
De la ligne 4 à la ligne contenant “tartempion” : sed '4,/tartempion/ ’
De la ligne 4 à la dernière ligne : sed '4,$ ’
Uniquement la ligne 4 : sed '4 ’
Uniquement la dernière ligne : sed '$ ’
De la ligne contenant “foo” à “tartempion” : sed '/foo/,/tartempion/ ’

Merci pour ces explications, on ne peut plus claires.
Je note et j’essaierai de me souvenir où je place cette note :unamused:

Je suis pas en grand fan de python. perl est nettement plus fun et agréable à utiliser.
Je connais un bouquin pas mal ouai. perlmoderne.fr/

C’est le seul que j’ai, mais j’ai à peut près tout appris avec internet.[/quote]

Ouch ! 450 pages … pas pour moi :017 :033 [/quote]
A mais c’est pas de ce genre là. C’est le genre de bouquin où tu va piocher c’est vrai que c’est peut être pas le mieux pour apprendre. J’ai un PDF de 800 pages qui est plus à propos, mais je n’ai pas les moyens de le publier avant ce soir (en fait je ne sais même pas les droits que j’ai dessus). Tu pourrais le commencer et le finir quand tu veut.

EDIT : Après vérification, j’ai le droit de le publier :
barmic.fr/owncloud/apps/files_s … fde5628896[/quote]

Cool, merci :stuck_out_tongue: , j’irai voir ça dés que j’ai 1 minute … :open_mouth:

En fait, avec sed, on peut préciser des n° de ligne ou des expressions régulières pour définir une plage de ligne à traiter. Le $ est considéré comme un n° de ligne. Ce qui donne :

sed i~ '/^Explanation/,$d' /etc/apt/preferences

:033[/quote]
Ça fonctionne mieux avec un tiret devant le ‘i’ :wink:

Question : ,$d sans / entre , et $ et entre $ et d ?[/quote]
C’est zarbi parce que j’avais essayé ça mais what’s happened ? une erreur de ma part ? impossible :mrgreen:

Je regarde ça dés que je peux … là je :033 (des clopes of course)

[quote=“ricardo”]Merci pour ces explications, on ne peut plus claires.
Je note et j’essaierai de me souvenir où je place cette note :unamused:[/quote]

Bah n’importe où, tu la retrouvera avec find :mrgreen: :stuck_out_tongue:

oui mais quand je tape
$ find la_fiche_que_je_cherche /maison/bureau/bureau
mon ordi plante au bout de 7 ou 8 heures :unamused:
Z’auriez pas une commande plus fiables en sed, par exemple ?

Allez, stop “pause café”, sinon je vais me faire remonter les bretelles par Michel.

Je suis pas en grand fan de python. perl est nettement plus fun et agréable à utiliser.
Je connais un bouquin pas mal ouai. perlmoderne.fr/

C’est le seul que j’ai, mais j’ai à peut près tout appris avec internet.[/quote]

Ouch ! 450 pages … pas pour moi :017 :033 [/quote]
A mais c’est pas de ce genre là. C’est le genre de bouquin où tu va piocher c’est vrai que c’est peut être pas le mieux pour apprendre. J’ai un PDF de 800 pages qui est plus à propos, mais je n’ai pas les moyens de le publier avant ce soir (en fait je ne sais même pas les droits que j’ai dessus). Tu pourrais le commencer et le finir quand tu veut.

EDIT : Après vérification, j’ai le droit de le publier :
barmic.fr/owncloud/apps/files_s … fde5628896[/quote]

Cool, merci :stuck_out_tongue: , j’irai voir ça dés que j’ai 1 minute … :open_mouth: [/quote]
Je viens de voir ça :
lhullier.developpez.com/tutoriels/perl/intro/
C’est peut être plus didactique.

Je suis pas en grand fan de python. perl est nettement plus fun et agréable à utiliser.
Je connais un bouquin pas mal ouai. perlmoderne.fr/

C’est le seul que j’ai, mais j’ai à peut près tout appris avec internet.[/quote]

Ouch ! 450 pages … pas pour moi :017 :033 [/quote]
A mais c’est pas de ce genre là. C’est le genre de bouquin où tu va piocher c’est vrai que c’est peut être pas le mieux pour apprendre. J’ai un PDF de 800 pages qui est plus à propos, mais je n’ai pas les moyens de le publier avant ce soir (en fait je ne sais même pas les droits que j’ai dessus). Tu pourrais le commencer et le finir quand tu veut.

EDIT : Après vérification, j’ai le droit de le publier :
barmic.fr/owncloud/apps/files_s … fde5628896[/quote]

Cool, merci :stuck_out_tongue: , j’irai voir ça dés que j’ai 1 minute … :open_mouth: [/quote]
Je viens de voir ça :
lhullier.developpez.com/tutoriels/perl/intro/
C’est peut être plus didactique.[/quote]

Je “bookmark” direct :023 , j’aime bien ce genre de doc html sur 1 seule page avec des liens sur la même page comme ça on a tout “sur place” et on peut naviguer rapidement dedans, faire des recherches et piocher ce qu’on cherche comme tu le suggérais + haut ( les doc html avec des liens vers d’autres pages desquelles ils faut revenir vers la page “mère” puis rebelotte … sont insupportables :imp: )

Bookmarké mais pas lu, pas le temps. Je viens de revenir sur Paris ( pour au moins 6 mois ) et j’ai pas pu m’empêcher d’aller chez Eyrolles Bd St Germain, résultat des courses :

[ul][li]Cahiers de l’Admin Debian Squeeze - Raphaël Ertzog et Roland Mas :023[/li]
[li]Shells Linux et Unix par la pratique - Christophe Blaess - :023[/li]
[li]Debian GNU/Linux services réseaux - Michel Dutreix - :023 ???[/li]
[li]Linux Solutions de Haute Disponibilité - Sébastien Rohaut - :023 ???[/li][/ul]

… 154 € . Bon ! j’achète + rien avant de maîtriser ça :liar:

Je connais la qualité des 2 premiers mais les deux autres je sais pas. J’ai dans l’idée de me construire un NAS ou un SAN perso ( suis au chômedu, j’ai du temps …) histoire d’augmenter mes compétences, beaucoup de pain sur la planche du pov titi Rantanplan ! :shifty:

@Totor: cool ton sed -i~ '/^Explanation/,$d' /etc/apt/preferences
j’ai enfin vérifé et ça gaze, j’ai dû buguer encore un coup :blush:

@Ricardo : il vaut mieux taperfind /maison/bureau/bureau -type f -exec grep -i 'la_fiche_que_je_cherche' '{}' \; -print
voir :

find /maison/bureau/bureau -type f -exec grep -iq 'la_fiche_que_je_cherche' '{}' \; -print

si tu veux + sobre … et ça ne prendra + que 5 minutes, et seulement 1 minute avec les -prune qui vont bien :open_mouth: :mrgreen: :stuck_out_tongue: