Bonjour,
Je m'essaie à un script sed un peu plus élaboré que d'habitude (je ne le met pas ici car long) et je n'arrive pas à faire un branchement dans un bloc
d'instructions.
par exemple
/pattern/ {
# instructions diverses
/pattern2/ ! b label
}
: label
# autres instructions
ne marche pas, pas plus que
/pattern/ {
# instructions diverses
: label
# autres instructions
/pattern2/ ! b label
}
le branchement n'a pas lieu, ça sort du script à la rencontre de 'b label' (je suis sûr que je passe dans le bloc et que pattern2 est vérifié en
remplaçant 'b label' par '=' pour afficher le n° de ligne).
Un moyen de contourner ça ?
Merci
Daniel
Bonjour à tous,
un petit vote, pour ou contre la notification du wiki ?
Je pensais que les modifs marquées en mineur ne générait pas une
notification par mail, mais je me suis trompé. A terme, je vais hacker
ou whishlist ca, mais en attendant, je voudrais connaître votre avis.
(n'oubliez pas qu'une règle dans votre MUA/MDA est relativement facile à
implémenter pour supprimer les messages du wiki)
Merci d'avance
--
http://asyd.net/home/ - Home Page
http://guses.org/home/ - French Speaking (Open)Solaris User Group
Une page dans votre Wiki a été ajoutée ou modifiée. Voici les
détails :
Date : 2006/10/29 16:03
Navigateur : Mozilla/5.0 (X11; U; OpenBSD i386; en-US; rv:1.8.0.4) Gecko/20060605 Firefox/1.5.0.4
Adresse IP : 82.246.9.99
Nom d'hôte : man06-1-82-246-9-99.fbx.proxad.net
Ancienne révision : http://cli.asyd.net/home/racine?rev=1161939977
Nouvelle révision : http://cli.asyd.net/home/racine
Résumé : Création lien vers outil calcurse
Utilisateur : culot
@@ -42,8 +42,9 @@
* [[outils:vim:racine|Vim]]
* [[outils:Emacs|Emacs]]
* [[outils:slrn]]
* [[outils:Screen]]
+ * [[outils:calcurse]]
* [[outils:reseaux:racine|Les outils réseaux]]
* [[outils:sysop|Administration]]
====== Livres et Documentations ======
--
Ce message a été généré par DokuWiki
http://cli.asyd.net/home/
Une page dans votre Wiki a été ajoutée ou modifiée. Voici les
détails :
Date : 2006/10/29 17:00
Navigateur : Mozilla/5.0 (X11; U; OpenBSD i386; en-US; rv:1.8.0.4) Gecko/20060605 Firefox/1.5.0.4
Adresse IP : 82.246.9.99
Nom d'hôte : man06-1-82-246-9-99.fbx.proxad.net
Ancienne révision : http://cli.asyd.net/home/outils/calcurse?rev=1162137579
Nouvelle révision : http://cli.asyd.net/home/outils/calcurse
Résumé :
Utilisateur : culot
@@ -79,9 +79,9 @@
- 10:00 -> 10:30
rendez-vous pour signature du bail
</code>
- ==== Prochain rendez-vous ====
+ === Prochain rendez-vous ===
Une autre fonction permet de se renseigner sur le prochain rendez-vous et sur le temps restant avant celui-ci:
<code>
cli@asyd.net:~/ $ calcurse -n
--
Ce message a été généré par DokuWiki
http://cli.asyd.net/home/
Une page dans votre Wiki a été ajoutée ou modifiée. Voici les
détails :
Date : 2006/10/29 16:59
Navigateur : Mozilla/5.0 (X11; U; OpenBSD i386; en-US; rv:1.8.0.4) Gecko/20060605 Firefox/1.5.0.4
Adresse IP : 82.246.9.99
Nom d'hôte : man06-1-82-246-9-99.fbx.proxad.net
Ancienne révision : http://cli.asyd.net/home/outils/calcurse?rev=1162134447
Nouvelle révision : http://cli.asyd.net/home/outils/calcurse
Résumé :
Utilisateur : culot
@@ -1 +1,111 @@
====== calcurse ======
+
+ ===== Présentation =====
+ Calcurse est un organiseur personnel en mode texte, qui a pour but de gérer les rendez-vous et les tâches à faire. Il peut être utilisé soit en ligne de commande, soit par l'intermédiaire d'une interface utilisateur en mode texte.
+
+ Il est composé d'un calendrier, d'une liste de tâches, classe vos rendez-vous et vous prévient si vous en avez un d'ici peu.
+
+ L'interface utilisateur est configurable, et l'on peut choisir entre différents thèmes graphiques (couleur et disposition des élements de l'interface). Toutes les commandes sont documentées dans un système d'aide en ligne.
+
+ ===== Exemple d'utilisation =====
+ ==== Mode Interactif ====
+ Lorsque calcurse est utilisé en mode interactif dans un terminal, l'utilisateur peut consulter son agenda grâce à une interface ressemblant à ceci (le rendu est meilleur dans la réalité ;):
+
+ <file>
+ panneau rendez-vous---. .---panneau calendrier
+ | |
+ v v
+ +------------------------------------++------------------------------------+
+ | Rendez-vous || Calendrier |
+ |--------------------------------------||-------------------------------------|
+ | Avril 6, 2006 || Avril 2006 |
+ | ||Lun Mar Mer Jeu Ven Sam Dim |
+ | || 1 2 |
+ | || 3 4 5 6 7 8 9 |
+ | || 10 11 12 13 14 15 16 |
+ | || 17 18 19 20 21 22 23 |
+ | || 24 25 26 27 28 29 30 |
+ | || |
+ | |+-----------------------------------+
+ | |+-----------------------------------+
+ | || Tâches | panneau
+ | ||------------------------------------| tâches à
+ | || | faire
+ | || | |
+ | || |<--.
+ | || |
+ +------------------------------------++-----------------------------------+
+ |---[ Lun 22-11-2006 | 18:11:43 ]---(apts)----> 01:20 :: dîner <-------|<--.
+ +--------------------------------------------------------------------------+ barre de
+ | ? Aide R Retracer H/L -+1 Jour G Aller à C Config | notification
+ | Q Quitter S Sauver J/K -+1 Sem. Tab Chg vue |<-.
+ +----------------------------------------------------------------------- --+ |
+ |
+ barre de status
+
+ </file>
+
+ ==== Ligne de commande ====
+ Pour ceux qui apprécient la ligne de commande, calcurse peut être appelé avec diverses options qui en font un outil facilement incorporable dans un script shell.
+ En voici quelques exemples :
+
+ === Liste des tâches à faire ===
+ la commande suivante renvoie la liste des tâches à faire, avec un numéro représentant leur priorité:
+
+ <code>
+ cli@asyd.net:~/ $ calcurse -t
+ to do:
+ 1. écrire une page sur asyd.net
+ 2. implémenter l'export des données au format xml
+ 3. mettre les bières au frais
+ </code>
+
+ === Liste des rendez-vous pour les trois prochains jours ===
+ Il est possible d'obtenir les rendez-vous pour la journée en cours ou pour le nombre de jours précisé dans la commande:
+
+ <code>
+ cli@asyd.net:~/ $ calcurse -d 3
+ 10/29/2006:
+ - 18:00 -> 18:30
+ apéro
+
+ 10/30/2006:
+ - 09:00 -> 09:45
+ réunion de suivi
+ - 13:00 -> 14:00
+ dentiste
+
+ 10/31/2006:
+ - 10:00 -> 10:30
+ rendez-vous pour signature du bail
+ </code>
+
+ ==== Prochain rendez-vous ====
+ Une autre fonction permet de se renseigner sur le prochain rendez-vous et sur le temps restant avant celui-ci:
+
+ <code>
+ cli@asyd.net:~/ $ calcurse -n
+ next appointment:
+ [01:05] apéro
+
+ </code>
+
+ ===== Téléchargement =====
+ Calcurse peut être téléchargé à l'adresse suivante:
+ [[http://culot.org/calcurse/download.html]]
+
+ ===== Liens =====
+ * L'adresse de la page principale du projet:
+ [[http://culot.org/calcurse]]
+
+ * Le manuel d'utilisation est consultable en ligne, avec une traduction en français, allemand, espagnol et anglais:
+ [[http://culot.org/calcurse/manual.html]]
+
+ * Quelques copies d'écran:
+ [[http://culot.org/calcurse/screens.html]]
+
+ * Pour consulter les sources du projet:
+ [[http://culot.org/cgi-bin/cvsweb.cgi/calcurse/]]
+
+ * Et enfin le flux RSS pour être tenu au courant des nouvelles versions:
+ [[http://culot.org/calcurse/news_rss.xml]]
--
Ce message a été généré par DokuWiki
http://cli.asyd.net/home/
Une page dans votre Wiki a été ajoutée ou modifiée. Voici les
détails :
Date : 2006/10/29 16:07
Navigateur : Mozilla/5.0 (X11; U; OpenBSD i386; en-US; rv:1.8.0.4) Gecko/20060605 Firefox/1.5.0.4
Adresse IP : 82.246.9.99
Nom d'hôte : man06-1-82-246-9-99.fbx.proxad.net
Ancienne révision : none
Nouvelle révision : http://cli.asyd.net/home/outils/calcurse
Résumé : création de la page concernant l'outil calcurse
Utilisateur : culot
====== calcurse ======
--
Ce message a été généré par DokuWiki
http://cli.asyd.net/home/
Hello,
Lorsque vous avez des fichiers dans SVN que vous avez effacé en local
avec rm, et que vous avec un ! devant lorsque vous faites un svn
status, l'envie vous viendra peut-être (le besoin aussi) d'effacer
ces fichiers du repository.
Donc, la petite commande pour ce faire:
svn status |grep ! |cut -d" " -f7 >| /tmp/svnDelete && svn delete --
targets /tmp/svnDelete && rm /tmp/svnDelete
le cut -d" " -f7 n'est pas très robuste, mais je vous laise le soin
de vérifier que cela cut bien le filename.
--
Kuon
CEO - Goyman.com SA
http://www.goyman.com/
"Computers should not stop working when the users' brain do."
Une page dans votre Wiki a été ajoutée ou modifiée. Voici les
détails :
Date : 2006/10/27 12:45
Navigateur : Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.8.0.4) Gecko/20060406 Firefox/1.5.0.4 (Debian-1.5.dfsg+1.5.0.4-1)
Adresse IP : 82.253.200.65
Nom d'hôte : lns-bzn-46-82-253-200-65.adsl.proxad.net
Ancienne révision : http://cli.asyd.net/home/filtres/exemples?rev=1161856696
Nouvelle révision : http://cli.asyd.net/home/filtres/exemples
Résumé :
Utilisateur : mc
@@ -25,8 +25,32 @@
find . -type f -print0 | xargs -0 sha1sum | sort -k 1,40 | uniq -D -w 40 | \
perl -e '@f=();sub p{print "@f\n";@f=()};while(<>){chop;($h,$f)=split / /;p if $g and $h ne $g;$g=$h;push @f,$f};p'
</code>
(kwisatz)
+
+ 3 remarques :
+ - l'indentation ameliore conciderablement la lisibilité
+ - je pense que xargs sans -n c'est mal car tu risques facilement de faire deborder ta ligne de commande
+ - si deja tu utilises perl, les autres filtres deviennent inutiles :
+
+ <code bash>
+ find . -type f -print0 |
+ xargs -n20 -0 sha1sum |
+ perl -lne '
+ $hash = substr($_,0,40);
+ $file = substr($_,42);
+ push @{ $a{$hash} } , $file;
+ END {
+ for ( values %a ) {
+ print "@$_" if $#$_;
+ }
+ }
+ '
+ </code>
+
+ Pour le meme nombre de lignes, on a une version pure perl en utilisant Digest::Sha1.
+
+ (mc)
===== Additionner les nombres de chaque colonne d'un fichier avec num-utils =====
voir [[filtres:autres#num-utils]]
<code:bash>
--
Ce message a été généré par DokuWiki
http://cli.asyd.net/home/
Une page dans votre Wiki a été ajoutée ou modifiée. Voici les
détails :
Date : 2006/10/27 10:21
Navigateur : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.7) Gecko/20060830 Firefox/1.5.0.7 (Debian-1.5.dfsg+1.5.0.7-2)
Adresse IP : 195.5.211.234
Nom d'hôte : aragorn.arseo.com
Ancienne révision : http://cli.asyd.net/home/filtres/tail?rev=1161899391
Nouvelle révision : http://cli.asyd.net/home/filtres/tail
Résumé :
Utilisateur : kwisatz
@@ -7,4 +7,19 @@
^ Afficher les xx dernières lignes | tail -n xx mon_fichier |
^ Regarder ce qui s'écrit dans un fichier (genre log) au fur et à mesure qu'on écrit dedans | tail -f monfichier |
A vous de jouer !
+
+ ===== Pour aller plus loin =====
+
+ tail -f est gourmand.
+
+ ILa seule manière de savoir si un fichier a changé, c'est de regarder à intervalles définis. Donc toutes les secondes, que le fichier ait changé ou pas, tail -f va regarder si le pointeur est à la fin du fichier, et si non, afficher jusque la fin du fichier, puis se mettre en sleep pendant une seconde, etc.
+
+ C'est inefficace donc, puisque une seconde (au maximum) de délai est observée (et parfois c'est pénible).
+
+ La solution : utiliser la fonctionnalité inotify des kernels 2.6 récents (TODO: préciser la version exacte). Cette fonctionnalité permet à un programme userland (par opposition au kernel lui-même), d'être informé en cas de changement sur un fichier qu'il surveille. Le programme informe le kernel qu'il veut être informé en cas de syscall sur l'inode qu'il surveille, et paf, il peut d'un coup dormir 12s et être réveillé au moment précis où une ligne est ajoutée au fichier.
+
+ inotail (apt-get install inotail pour les debianeux), http://distanz.ch/inotail, duplique grosso-modo le fonctionnement de tail (et de son option -f qui nous intéresse ici), en utilisant inotify.
+
+
+ Autre remarque : Quand vous surveillez un fichier longtemps (par exemple 24h), il se peut que logrotate soit passé par là, ait renommé votre fichier syslog en syslog.0, et que tail -f soit en train de surveiller un fichier d'archive (pour être précis, tail -f surveille un inode, et quand on renomme un fichier, l'inode ne change pas). La solution est d'utiliser l'option --follow=name, qui dit à tail de vérifier toutes les secondes que l'inode correspondant au nom suivi n'a pas changé, et si c'est le cas, il réouvre le fichier.
--
Ce message a été généré par DokuWiki
http://cli.asyd.net/home/
Bonjour à tous,
j'ai rajouté la notification par mail du wiki cli.asyd.net vers cette
présente liste. Un mail sera donc envoyé à chaque modification sur le
wiki, pour ne pas trop polluer, si vous faites juste une correction (de
typo par exemple), valider la case à cocher "Mineur" (la notification
n'est pas activée pour les modifications mineures)
Pour ceux que ca intèresse :
http://asyd.net/stats/
Je tiens à remercier au passage tous les contributeurs du wiki, il faut
que ca continue comme ca ! (En plus, il y aura une présentation rapide
dans le prochain LMF)
a+
--
http://asyd.net/home/ - Home Page
http://guses.org/home/ - French Speaking (Open)Solaris User Group