Nous avons un nom de paquet, suivis de la liste des fichiers contenus
dans ce paquet. Je voudrais trouver la manière de récupérer
le nom d'un paquet lorsque je fournis le nom d'un fichier.
J'ai écrit un script basique:
---
#! /bin/bash
IFS="
"
for line in `bzcat /mnt/cdrom/slackware/MANIFEST.bz2`
do
TMP_PACK=`echo "$line" | grep Package `
[ $? -eq 0 ] && PACK=$TMP_PACK
echo "$line" | grep "$1"
[ $? -eq 0 ] && echo $PACK
done
---
cela fonctionne, mais
1. c'est atrocement lent. Il faut compter quelques minutes deja
pour les premiers paquets. Pour les derniers (comme zsh), j'ai
abandonné au bout de 30mn
2. Ce script me mange de la RAM de facon phenomenale (+100Mo a
vue de nez)
Le fichier comprimé en bz2 fait 900ko et 138000 lignes. Ce qui
doit expliquer les deux points exprimes plus haut.
Mes questions:
comment ameliorer ce script?
faut il conserver decomprime le MANIFEST.bz2?
Mais, la meme requete avec uniquement "zsh" ne renvoie aucune occurence. Ca se joue au niveau du 6e champ, mais comment sont gerees les regexp avec awk? -- Kevin
Le 29-05-2007, Alain Ketterlin <alain@dpt-info.u-strasbg.fr> a écrit :
Mais, la meme requete avec uniquement "zsh" ne renvoie aucune occurence.
Ca se joue au niveau du 6e champ, mais comment sont gerees les regexp
avec awk?
--
Kevin
Mais, la meme requete avec uniquement "zsh" ne renvoie aucune occurence. Ca se joue au niveau du 6e champ, mais comment sont gerees les regexp avec awk? -- Kevin
Mais, la meme requete avec uniquement "zsh" ne renvoie aucune occurence. Ca se joue au niveau du 6e champ, mais comment sont gerees les regexp avec awk?
Bin, $6=="bin/zsh" signifie <<le 6ème champs doit etre egal à bin/zsh>>. Si tu veux un match seulement, essaye $6~="zsh".
Marc Boyer -- Si tu peux supporter d'entendre tes paroles Travesties par des gueux pour exciter des sots IF -- Rudyard Kipling (Trad. André Maurois)
Le 29-05-2007, Kevin Denis <kevin@nowhere.invalid> a écrit :
Le 29-05-2007, Alain Ketterlin <alain@dpt-info.u-strasbg.fr> a écrit :
Mais, la meme requete avec uniquement "zsh" ne renvoie aucune occurence.
Ca se joue au niveau du 6e champ, mais comment sont gerees les regexp
avec awk?
Bin, $6=="bin/zsh" signifie <<le 6ème champs doit etre egal
à bin/zsh>>. Si tu veux un match seulement, essaye
$6~="zsh".
Marc Boyer
--
Si tu peux supporter d'entendre tes paroles
Travesties par des gueux pour exciter des sots
IF -- Rudyard Kipling (Trad. André Maurois)
Mais, la meme requete avec uniquement "zsh" ne renvoie aucune occurence. Ca se joue au niveau du 6e champ, mais comment sont gerees les regexp avec awk?
Bin, $6=="bin/zsh" signifie <<le 6ème champs doit etre egal à bin/zsh>>. Si tu veux un match seulement, essaye $6~="zsh".
Marc Boyer -- Si tu peux supporter d'entendre tes paroles Travesties par des gueux pour exciter des sots IF -- Rudyard Kipling (Trad. André Maurois)
Mais, la meme requete avec uniquement "zsh" ne renvoie aucune occurence. Ca se joue au niveau du 6e champ, mais comment sont gerees les regexp avec awk?
$6 ~ /zsh/ au lieu de $6 == "zsh"
(voire $6 ~ /zsh$/ pour un nom à la fin du champ, voire plus sioux si il y a besoin)
Mais, la meme requete avec uniquement "zsh" ne renvoie aucune occurence.
Ca se joue au niveau du 6e champ, mais comment sont gerees les regexp
avec awk?
$6 ~ /zsh/ au lieu de $6 == "zsh"
(voire $6 ~ /zsh$/ pour un nom à la fin du champ, voire plus sioux si
il y a besoin)
Mais, la meme requete avec uniquement "zsh" ne renvoie aucune occurence. Ca se joue au niveau du 6e champ, mais comment sont gerees les regexp avec awk?
$6 ~ /zsh/ au lieu de $6 == "zsh"
(voire $6 ~ /zsh$/ pour un nom à la fin du champ, voire plus sioux si il y a besoin)
-- Alain.
Alain Ketterlin
Alain Ketterlin writes:
$6 ~ /zsh/ au lieu de $6 == "zsh"
Je me rends compte que mon lecteur de news (gnus) me met en italique tout ce qui se trouve entre slashes... Donc, au cas où c'est pareil chez vous : dans awk, une expression regulière est placée entre slashes. Il faut donc lire :
$6 ~ <slash>zsh<slash>
Cela dit, on peut écrire $6 ~ "zsh" et la chaîne est transformée en expression régulière.
Je me rends compte que mon lecteur de news (gnus) me met en italique
tout ce qui se trouve entre slashes... Donc, au cas où c'est pareil
chez vous : dans awk, une expression regulière est placée entre
slashes. Il faut donc lire :
$6 ~ <slash>zsh<slash>
Cela dit, on peut écrire $6 ~ "zsh" et la chaîne est transformée en
expression régulière.
Je me rends compte que mon lecteur de news (gnus) me met en italique tout ce qui se trouve entre slashes... Donc, au cas où c'est pareil chez vous : dans awk, une expression regulière est placée entre slashes. Il faut donc lire :
$6 ~ <slash>zsh<slash>
Cela dit, on peut écrire $6 ~ "zsh" et la chaîne est transformée en expression régulière.
-- Alain.
Kevin Denis
Le 29-05-2007, Alain Ketterlin a écrit :
$6 ~ /zsh/ au lieu de $6 == "zsh"
Je me rends compte que mon lecteur de news (gnus) me met en italique tout ce qui se trouve entre slashes...
slrn fait la coloration syntaxique mais a une options qui conserve les caracteres places avant et apres les mots colores. C'est tres utile dans une groupe comme celui ci.
Merci -- Kevin
Le 29-05-2007, Alain Ketterlin <alain@dpt-info.u-strasbg.fr> a écrit :
$6 ~ /zsh/ au lieu de $6 == "zsh"
Je me rends compte que mon lecteur de news (gnus) me met en italique
tout ce qui se trouve entre slashes...
slrn fait la coloration syntaxique mais a une options qui conserve
les caracteres places avant et apres les mots colores.
C'est tres utile dans une groupe comme celui ci.
Je me rends compte que mon lecteur de news (gnus) me met en italique tout ce qui se trouve entre slashes...
slrn fait la coloration syntaxique mais a une options qui conserve les caracteres places avant et apres les mots colores. C'est tres utile dans une groupe comme celui ci.