Je n'ai pas très bien compris ton exemple, donc suivant ce que tu veux faire (avec une expression réguliere tout simple), pour récupérer le résultat dans un array:
my $a="abc def ghf";
my @resultats = ($a =~ m/([\w_]+)/g);
foreach my $element (@resultats) {
print "un element=$element\n";
# ton traitement
}
Ou plus simplement pour l'utiliser directement dans une boucle:
my $a="abc def ghf";
foreach my $element ($a=~m/([\w_]+)/g) {
print "un element=$element\n";
# ton traitement
}
Require must be accompanied by AuthName and AuthType directives, and directives such as AuthUserFile and AuthGroupFile (to define users and groups) in order to work correctly.
Rajoute donc les directives AuthUserFile et AuthGroupFile à mon avis !
toi et peck me suggerer de faire apt-get install linux-source-2.6.8.2 mais cela ne marche pas , en plus y a pas moyen de connaitre la version exacte !! (quand je fais tab , alors y a pas de proposition)
Utilises la commande "dpkg -l | grep kernel" et regarde les lignes contenant "kernel-image" et "linux-kernel-headers" pour voir la version des paquets installés.
man make-dkpg, ça me foue un peu la trouille , sincèrement je n'ose pas.
man ça ne fais qu'afficher une page d'aide hein, alors pas de panique, tu peux y aller sans problème ! ;-) man make-kpkg
Tu utilises quelle distribution (debian ?) ?
Plutot que de télécharger les sources directement sur kernel.org tu ferais mieux de récupérer et d'utiliser le paquet contenant les sources du noyau livré avec ta distribution, comme ça tu es sur d'avoir avec les éventuels patchs appliqués pour ta distribution.
Pour migrer en douceur je pense que le plus simple est au départ de simplement modifier la ligne de lancement de tes scripts, genre: sh /etc/mon_appli/appli.conf && perl /blabla/tonscript.pl
Les variables d'environnement et les autres modifications comme umask devraient ainsi être utilisées par le script perl.
En copiant les lignes ci-dessous dans remplace.sh:
#!/bin/sh
a_remplacer=""
while read data; do
fin=`echo $data | grep '^"[^#]*","Machin"'`
if [ -n "$fin" ] ; then
# Fin du traitement car "Machin" trouvé
a_remplacer=""
echo "$data"
else
if [ -n "$a_remplacer" ] ; then
# Ligne dans laquelle il faut remplacer "" par "truc"
ligne=`echo $data | sed 's/^\("[^"]*",\)\("[^"]*"\)\(.*\)/\1"truc"\3/'`
echo "$ligne"
else
recherche=`echo $data | grep '^"[^"]*","truc"'`
if [ -n "$recherche" ] ; then
# A partir de maintenant il faut remplacer "" par "truc"
a_remplacer="OUI"
fi
echo "$data"
fi
fi
done
et ensuite: ./remplace.sh < fichier_data > fichier_ok
fichier_data = le fichier contenant les données à traiter
fichier_ok = le fichier contenant les données traitées
Après un rapide test et si j'ai bien compris ça semble à peu près faire ce que tu veux, mais bon .. à tester !
Je pense que le problème est que la variable tab que tu affiches et la variable tab que tu passes à la fonction display n'est pas la même!
Le while do ... done lance un sous shell, la variable tab affecté dans ce sous shell n'est pas accessible en dehors, dans ton exemple c'est une nouvelle variable non initialisé qui est passé à la fonction display.
Regarde http://abs.traduc.org/abs-4.2.01-fr/ch20.html pour plus d'info.
En dehors de ça la syntaxe semble correcte.
/usr/lib/cups/backend/ipp est normalement un lien vers le fichier /usr/lib/cups/backend-available/ipp, il existe lui ?
Si oui tu peux essayer de recréer le lien: ln -s /usr/lib/cups/backend-available/ipp /usr/lib/cups/backend/ipp
Le code 127 c'est en général que la commande est introuvable, le variable PATH a surement une valeur différente lorsque ton script est appelé en crontab.
Le plus simple, essai en mettant le chemin complet de la commande dans ton script: /bin/mount_smbfs -W PEDAGOGIE //E998759H:.......@irsmbetu/E998759H /Volumes/E998759H/
[^] # proftpd: warning: unable to determine IP address of 'amd64'
Posté par sylvain cresto (site web personnel) . En réponse au message ftp login. Évalué à 2.
Tente un:
ping amd64
ça ne devrait pas fonctionner.
Rajoute dans ton fichier /etc/hosts une ligne:
amd64 ip_de_ton_serveur
Et tente à nouveau un ping, là ça devrait être ok, reessai ensuite de lancer proftpd.
# : list file for package `xmodmap' is missing final newline
Posté par sylvain cresto (site web personnel) . En réponse au message list file for package `xmodmap' is missing final newline. Évalué à 2.
Tu peux essayer:
sudo apt-get install --reinstall --download-only xmodmap
sudo dpkg -c /var/cache/apt/archives/xmodmap_1%3a1.0.1-0ubuntu1_i386.deb | awk '{if ($6 == "./") { print "/."; } else if (substr($6, length($6), 1) == "/") {print substr($6, 2, length($6) - 2); } else { print substr($6, 2, length($6) - 1);}}' > /var/lib/dpkg/info/xmodmap.list
En remplaçant xmodmap_1%3a1.0.1-0ubuntu1_i386.deb par ce que tu trouves chez toi, ce qui va te regénérer le fichier .list apparement foireu.
Bon courage :-)
[^] # Re: transfert de fichier ou dossier vers disque dur
Posté par sylvain cresto (site web personnel) . En réponse au message transfert de fichier ou dossier vers disque dur. Évalué à 2.
http://wiki.linux-ntfs.org/doku.php?id=ntfs-fr#est-ce_que_le(...)
À voir si tu veux quand même écrire sur du ntfs: captive
http://wiki.linux-ntfs.org/doku.php?id=ntfs-fr#pourquoi_ne_p(...)
# regexp
Posté par sylvain cresto (site web personnel) . En réponse au message Récupérer des captures multiples. Évalué à 3.
my $a="abc def ghf";
my @resultats = ($a =~ m/([\w_]+)/g);
foreach my $element (@resultats) {
print "un element=$element\n";
# ton traitement
}
Ou plus simplement pour l'utiliser directement dans une boucle:
my $a="abc def ghf";
foreach my $element ($a=~m/([\w_]+)/g) {
print "un element=$element\n";
# ton traitement
}
# AuthUserFile
Posté par sylvain cresto (site web personnel) . En réponse au message Problème de connexion au serveur Subversion. Évalué à 2.
Require must be accompanied by AuthName and AuthType directives, and directives such as AuthUserFile and AuthGroupFile (to define users and groups) in order to work correctly.
Rajoute donc les directives AuthUserFile et AuthGroupFile à mon avis !
[^] # lscfg sous AIX
Posté par sylvain cresto (site web personnel) . En réponse au message Savoir s'il y a des slots mémoire de libre. Évalué à 5.
lscfg -vp
# lshw
Posté par sylvain cresto (site web personnel) . En réponse au message Savoir s'il y a des slots mémoire de libre. Évalué à 6.
Sous linux avec lshw tu peux avoir l'information:
lshw -C memory
Qui affiche chez moi:
*-memory
description: System Memory
physical id: 38
slot: System board or motherboard
size: 768MB
*-bank:0
description: DIMM SDRAM Synchronous
product: PartNum0
vendor: Manufacturer0
physical id: 0
serial: SerNum0
slot: DIMM0
size: 512MB
width: 64 bits
[..]
*-bank:2
description: DIMM [empty]
product: PartNum2
vendor: Manufacturer2
physical id: 2
serial: SerNum2
slot: DIMM2
Plus d'info sur:
http://ezix.org/project/wiki/HardwareLiSter
# Le mot de passe doit être crypté
Posté par sylvain cresto (site web personnel) . En réponse au message probleme avec adduser. Évalué à 4.
-p, --password MOT_DE_PASSE
Le mot de passe chiffré, comme renvoyé par crypt(3).
Le plus simple est surement d'appeler la commande passwd dans ton script, par exemple:
echo "entrer le login"
read login
useradd $login
echo "entrer le mot de passe"
passwd $login
[^] # Re: Solution rescue
Posté par sylvain cresto (site web personnel) . En réponse au message Compte "Root" expiré!!. Évalué à 3.
Pour les afficher:
chage -l root
Pour desactiver l'expiration du mot de passe/compte:
chage -E -1 -I -1 -M -1 root
man chage pour plus d'info!
[^] # Re: -dir ?
Posté par sylvain cresto (site web personnel) . En réponse au message Pb avec ioctl. Évalué à 2.
tcpdump -i eth0 src host 172.20.35.20 -w ../udpflood/trace_debit_max_test
-dir n'existe pas !
[^] # Re: merci , mais ...
Posté par sylvain cresto (site web personnel) . En réponse au message compilation du kernel. Évalué à 2.
Utilises la commande "dpkg -l | grep kernel" et regarde les lignes contenant "kernel-image" et "linux-kernel-headers" pour voir la version des paquets installés.
man make-dkpg, ça me foue un peu la trouille , sincèrement je n'ose pas.
man ça ne fais qu'afficher une page d'aide hein, alors pas de panique, tu peux y aller sans problème ! ;-)
man make-kpkg
# utilise plutôt les sources livrées avec ta distribution
Posté par sylvain cresto (site web personnel) . En réponse au message compilation du kernel. Évalué à 3.
Tu utilises quelle distribution (debian ?) ?
Plutot que de télécharger les sources directement sur kernel.org tu ferais mieux de récupérer et d'utiliser le paquet contenant les sources du noyau livré avec ta distribution, comme ça tu es sur d'avoir avec les éventuels patchs appliqués pour ta distribution.
# modification ligne de commande
Posté par sylvain cresto (site web personnel) . En réponse au message source shell. Évalué à 2.
sh /etc/mon_appli/appli.conf && perl /blabla/tonscript.pl
Les variables d'environnement et les autres modifications comme umask devraient ainsi être utilisées par le script perl.
# strftime
Posté par sylvain cresto (site web personnel) . En réponse au message Programme C et date en Francais. Évalué à 7.
man ctime
... L'internationalisation de la date est possible en utilisant la fonction setlocale(3) et strftime(3). ...
Le test:
#include <stdio.h>
#include <time.h>
#include <locale.h>
int main(void)
{
char d[100];
time_t t = time(NULL);
struct tm *tm = localtime(&t);
strftime(d, sizeof(d)-1, "%A %d %B %Y a %Hh%M", tm);
printf("En anglais: %s\n", d);
setlocale(LC_ALL, "");
strftime(d, sizeof(d)-1, "%A %d %B %Y a %Hh%M", tm);
printf("En français: %s\n", d);
}
qui donne:
En Anglais: Thursday 12 April 2007 a 09h30
En Français: jeudi 12 avril 2007 a 09h30
# A tester !
Posté par sylvain cresto (site web personnel) . En réponse au message Bash, sed , awk ?. Évalué à 3.
#!/bin/sh
a_remplacer=""
while read data; do
fin=`echo $data | grep '^"[^#]*","Machin"'`
if [ -n "$fin" ] ; then
# Fin du traitement car "Machin" trouvé
a_remplacer=""
echo "$data"
else
if [ -n "$a_remplacer" ] ; then
# Ligne dans laquelle il faut remplacer "" par "truc"
ligne=`echo $data | sed 's/^\("[^"]*",\)\("[^"]*"\)\(.*\)/\1"truc"\3/'`
echo "$ligne"
else
recherche=`echo $data | grep '^"[^"]*","truc"'`
if [ -n "$recherche" ] ; then
# A partir de maintenant il faut remplacer "" par "truc"
a_remplacer="OUI"
fi
echo "$data"
fi
fi
done
et ensuite:
./remplace.sh < fichier_data > fichier_ok
fichier_data = le fichier contenant les données à traiter
fichier_ok = le fichier contenant les données traitées
Après un rapide test et si j'ai bien compris ça semble à peu près faire ce que tu veux, mais bon .. à tester !
# sous shell
Posté par sylvain cresto (site web personnel) . En réponse au message les tableaux bash et les boucles while. Évalué à 2.
Le while do ... done lance un sous shell, la variable tab affecté dans ce sous shell n'est pas accessible en dehors, dans ton exemple c'est une nouvelle variable non initialisé qui est passé à la fonction display.
Regarde http://abs.traduc.org/abs-4.2.01-fr/ch20.html pour plus d'info.
En dehors de ça la syntaxe semble correcte.
# /backend/ipp
Posté par sylvain cresto (site web personnel) . En réponse au message Problème d'impression. Évalué à 1.
/usr/lib/cups/backend/ipp est normalement un lien vers le fichier /usr/lib/cups/backend-available/ipp, il existe lui ?
Si oui tu peux essayer de recréer le lien:
ln -s /usr/lib/cups/backend-available/ipp /usr/lib/cups/backend/ipp
[^] # Re: ...
Posté par sylvain cresto (site web personnel) . En réponse au message OOO2.2 seulement disponible en root. Évalué à 1.
Genre:
mv ~/.openoffice2 ~/.openoffice2.test
openoffice.org-2.2 -writer
Si ça ne marche toujours pas remets l'ancien répertoire:
mv ~/.openoffice2.test ~/.openoffice2
# samsung yp-u2rz
Posté par sylvain cresto (site web personnel) . En réponse au message Lecteur mp3 / ogg. Évalué à 2.
http://www.samsung.com/fr/products/portableaudio/pocket/usbk(...)
# Shake ?
Posté par sylvain cresto (site web personnel) . En réponse au message Obtenir le % de fragmentation d'une partoche ?. Évalué à 3.
Voir: http://linuxfr.org/2006/08/20/21216.html
Et la page du projet: http://vleu.net/shake/
# & mal placé
Posté par sylvain cresto (site web personnel) . En réponse au message les redirections shell >/dev/null ne marchent pas pour kwrite. Évalué à 5.
Le problème est que le & est mal placé, tu dois le mettre après les redirections vers /dev/null :
kwrite "$@" >/dev/null 2>/dev/null &
[^] # Re: svn - droit exécution sur un fichier
Posté par sylvain cresto (site web personnel) . En réponse au message subversion - Suite test migration pour entreprise. Évalué à 1.
# svn - droit exécution sur un fichier
Posté par sylvain cresto (site web personnel) . En réponse au message subversion - Suite test migration pour entreprise. Évalué à 3.
Pour rajouter les droits d'exécution au fichier main.cc:
svn propset svn:executable on main.cc
svn commit main.cc
Pour les enlever:
svn propdel svn:executable main.cc
svn commit main.cc
# fichier introuvable
Posté par sylvain cresto (site web personnel) . En réponse au message mount_smbfs / crontab sous Darwin. Évalué à 2.
Le plus simple, essai en mettant le chemin complet de la commande dans ton script:
/bin/mount_smbfs -W PEDAGOGIE //E998759H:.......@irsmbetu/E998759H /Volumes/E998759H/
[^] # Re: quelle commande
Posté par sylvain cresto (site web personnel) . En réponse au message Csh nom de fichier. Évalué à 1.
cp "$lepathcomplet" "$lepath.sauvegarde/$filename"