Bonjour,
Je voudrai savoir comment je pourrai ajouter un commentaire au début d'une ligne dans un fichier avec la commande sed. En faite c'est une ligne qui n'est pas commenté, mais je voudrai la commentée en passant par un script.
Par exemple:
CustomLog
en
# CustomLog
Merci pour votre aide
Moulinux
Forum Programmation.shell shell : pipe et variable locale
Bonjour. Mon problème est le suivant, j'aimerai faire une boucle sur le liste des fichiers de mon répertoire. Mon code ressemble à ça: #!/bin/sh VAR=0 ls | while read line do VAR=$(($VAR +1)) done echo $VAR Mais vu qu'une pipe lance un nouveau processus, la ligne echo $VAR affiche systématiquement 0 J'ai trouvé une solution qui marche pour bash: #!/bin/bash VAR=0 while read line do VAR=$(($VAR +1)) done Debian_Almquist_shell
Forum Programmation.shell Bash - obtenir le nombre d'octets d'un DVD vidéo sans le monter
Bonjour,
Tout est dans le titre.
Pouvez-vous m'aider ?
Merci
Tout est dans le titre.
Pouvez-vous m'aider ?
Merci
Forum Programmation.shell infos sur rsync
bonjour a tous toutes
j'ai une sauvegarde qui se fait entre 2 serveurs linux distant via internet et grace a rsync
ce sont des produits synology (des nas ds408)
j'aimerais connaitre avant le lancement de la sauvegarde le volume réel de data qui va transiter via internet.
comment faire ?
merci d'avance
j'ai une sauvegarde qui se fait entre 2 serveurs linux distant via internet et grace a rsync
ce sont des produits synology (des nas ds408)
j'aimerais connaitre avant le lancement de la sauvegarde le volume réel de data qui va transiter via internet.
comment faire ?
merci d'avance
Forum Programmation.shell nom et taille dans fichier texte
Bonjour,
losrque je fais "ls -s *.avi" j'obtiens la taille puis le nom de mes fichier avi.
Je voudrais mettre ce resultat dans un fichier texte avec le nom du fichier un point virgule puis la taille
ex : toto.avi;25215
merci pour votre aide
losrque je fais "ls -s *.avi" j'obtiens la taille puis le nom de mes fichier avi.
Je voudrais mettre ce resultat dans un fichier texte avec le nom du fichier un point virgule puis la taille
ex : toto.avi;25215
merci pour votre aide
Forum Programmation.shell Script KSH avec fichier de configuration externe
Bonjour,
Je dois écrire un script qui sera déployé sur plusieurs environnement différent avec des valeurs de connexions aux base de données qui varies selon les environnements.
J'ai fait un fichier de configuration externe appelé "paramètres.conf" qui contient les variables susceptibles de changer entre les environnements.
CHAINE_CONNEXION=valeur1/valeur2
DATA_BASE=dbName
Dans mon script j'aimerai faire un appel a ce fichier de configuration qui sera définit une fois pour toute dans chacun des environnements, et utiliser les variables comme si elle était définit (…)
Je dois écrire un script qui sera déployé sur plusieurs environnement différent avec des valeurs de connexions aux base de données qui varies selon les environnements.
J'ai fait un fichier de configuration externe appelé "paramètres.conf" qui contient les variables susceptibles de changer entre les environnements.
CHAINE_CONNEXION=valeur1/valeur2
DATA_BASE=dbName
Dans mon script j'aimerai faire un appel a ce fichier de configuration qui sera définit une fois pour toute dans chacun des environnements, et utiliser les variables comme si elle était définit (…)
Forum Programmation.shell diff et les liens symboliques
Problème du jour : diff tente de suivre les liens plutôt que de simplement les comparer. Et lorsque les liens pointent dans le vide, diff retourne un code d'erreur
Je cherche donc un moyen de comparer deux répertoires contenant potentiellement des liens invalides
$ ln -s nonexistant link
$ diff link link && echo identiques
diff: link: No such file or directory
diff: link: No such file or directory
Je cherche donc un moyen de comparer deux répertoires contenant potentiellement des liens invalides
Forum Programmation.shell bizarrerie sed
Bonjour à tous,
j'écris un petit script shell me permettant de vérifier la taille de mes tables dans une base de données. Sil les tables atteignent la taille que j'ai défini alors elles doivent etre sauvegardées sous un autre nom puis vidées par la suite.
Mais voilà mon sed me permettant de remplacer le nom des tables par un autre nom dans mon fichier sql me montre bien à l'exécution que le remplacement à eu lieu mais quan je vérifie (…)
j'écris un petit script shell me permettant de vérifier la taille de mes tables dans une base de données. Sil les tables atteignent la taille que j'ai défini alors elles doivent etre sauvegardées sous un autre nom puis vidées par la suite.
Mais voilà mon sed me permettant de remplacer le nom des tables par un autre nom dans mon fichier sql me montre bien à l'exécution que le remplacement à eu lieu mais quan je vérifie (…)
Forum Programmation.shell code retour sed ?
Salut,
J'essaye de faire un "change or add" avec sed mais ça ne passe pas.
sed --in-place '/^MaxMem/ c\MaxMem = default' /tmp/test || echo "MaxMem = default" >> /tmp/test
mais si le sed ne trouve pas la ligne qui commence par MaxMem le echo n'est executé. Si il la trouve il la modifie correctement.
Ou est le problème ??
Le sed ne devrait pas retourner un code d'erreur si le search ne marche pas ?
J'essaye de faire un "change or add" avec sed mais ça ne passe pas.
sed --in-place '/^MaxMem/ c\MaxMem = default' /tmp/test || echo "MaxMem = default" >> /tmp/test
mais si le sed ne trouve pas la ligne qui commence par MaxMem le echo n'est executé. Si il la trouve il la modifie correctement.
Ou est le problème ??
Le sed ne devrait pas retourner un code d'erreur si le search ne marche pas ?
Forum Programmation.shell Programmation script shell ksh unix
Bonjour à tous, Je développe une fonction pour un script shell sous ksh qui doit me renvoyer le nombre d'instances du programme principal en cours de traitement, et s'arrêter si ce nombre est supérieur à 1. Relativement simple, pensai-je. Seulement voilà, les résultats que j'obtiens sont différents de ce que je suis en droit d'attendre. Le nombre de processus que j'obtiens en résultat est souvent supérieur ou inférieur. J'ai probablement dû me tromper quelque part, mais impossible de trouver où (…)
Forum Programmation.shell Séquences terminfo, bash et tput
Bonjour à tous et à toutes,
je travaille actuellement au portage d'un script ksh sous bash.
Ce script est en fait un moteur de menu basé sur des séquences terminfo pour gérer les évènements tels que :
touche flèche haut
touche flèche bas
affichage en mode reverse lorsqu'on est sur une rubrique
gestion touche F1
etc...
Pour récupérer ces séquences, la commande "tput" est utilisée suivie du nom de l'évènement, par exemple pour gérer les évènements de la touche flèche (…)
je travaille actuellement au portage d'un script ksh sous bash.
Ce script est en fait un moteur de menu basé sur des séquences terminfo pour gérer les évènements tels que :
touche flèche haut
touche flèche bas
affichage en mode reverse lorsqu'on est sur une rubrique
gestion touche F1
etc...
Pour récupérer ces séquences, la commande "tput" est utilisée suivie du nom de l'évènement, par exemple pour gérer les évènements de la touche flèche (…)
Forum Programmation.shell regex et awk
Bonjour
J'arrive à récupérer ce qu'il y a avant une chaîne (lookahead assertion) en Perl mais pas avec Awk.
J'ai cette chaine, dans une variable par exemple
Backup by root on client turlututu using policy AC-ABCD-
USER-ZYXW-1234, sched 3monthsFULL:the requested operation
Je veux récupérer ce qu'il y a avant FULL:
Avec Perl, ce qui suit est ok
echo $zz | perl -ne 'print $& if /\w+(?=FULL:)/'
3months
Avec awk, j'ai juste
echo $zz | awk '/\w+(?=FULL:)/'
awk: syntax error near (…)
J'arrive à récupérer ce qu'il y a avant une chaîne (lookahead assertion) en Perl mais pas avec Awk.
J'ai cette chaine, dans une variable par exemple
Backup by root on client turlututu using policy AC-ABCD-
USER-ZYXW-1234, sched 3monthsFULL:the requested operation
Je veux récupérer ce qu'il y a avant FULL:
Avec Perl, ce qui suit est ok
echo $zz | perl -ne 'print $& if /\w+(?=FULL:)/'
3months
Avec awk, j'ai juste
echo $zz | awk '/\w+(?=FULL:)/'
awk: syntax error near (…)
Forum Programmation.shell recupere les paramettres d"un programme associé à un alias
bonjour ,
je n'ai pas une trés grande experience en programmation shell, j'ai un programme dbaccess pour les requettes informix
le probleme est que j'ai installé un systeme linux suse 10 64 bit
un moteur de base de donnée informix ids 11.50 64 bit, mais suite à des problemes dans le 4gl 64 bit, j'ai installé la version 32 bit du 4gl dans un autre repertoire autre que la version 64 bit
les programmes se compilent et s'executent correctement, mais (…)
je n'ai pas une trés grande experience en programmation shell, j'ai un programme dbaccess pour les requettes informix
le probleme est que j'ai installé un systeme linux suse 10 64 bit
un moteur de base de donnée informix ids 11.50 64 bit, mais suite à des problemes dans le 4gl 64 bit, j'ai installé la version 32 bit du 4gl dans un autre repertoire autre que la version 64 bit
les programmes se compilent et s'executent correctement, mais (…)
Forum Programmation.shell Afficher deux champs depuis un log
Bonjour.
Je dois parser mon log de Postfix et sortir les mails bouncés. Il faut que je sorte le mail et la raison.
Voici à quoi ressemble une ligne :
Sep 9 09:27:14 fidji postfix/smtp[13495]: 8B9558825: to=, relay=mail.domain.fr[195.68.104.189], delay=4, status=bounced (host mail.domain.fr[195.68.999.999] said: 554 5.7.1 : Recipient address rejected: Access denied (in reply to RCPT TO command))
Je dois avec un script, sortir :
"xxxxxxx@domain.fr Recipient address rejected: Access denied (in reply to RCPT TO command)"
Donc, afficher ces (…)
Je dois parser mon log de Postfix et sortir les mails bouncés. Il faut que je sorte le mail et la raison.
Voici à quoi ressemble une ligne :
Sep 9 09:27:14 fidji postfix/smtp[13495]: 8B9558825: to=
Je dois avec un script, sortir :
"xxxxxxx@domain.fr Recipient address rejected: Access denied (in reply to RCPT TO command)"
Donc, afficher ces (…)
Forum Programmation.shell renommer des fichiers avec 3 chiffres
Bonjour,
Je suis entrain de faire un script pour faire des archives de comics (cbz) et il me manque juste une partie ordre, dans le nom des fichiers.
#!/bin/bash
nom="POT_V1_"
mkdir $nom;
IFS=$'\n'
cpt=0;
for i in `ls *.jpg`
do
cpt=`expr $cpt + 1`;
echo "separate $i en $nom$cpt"
convert -crop 50%x100% $i temp
mv temp-0 $nom/$nom$cpt.jpg;
cpt=`expr $cpt + 1`;
mv temp-1 $nom/$nom$cpt.jpg;
done
En gros j'obtiens toto1.jpg etc, toto10.jpg et toto100.jpg.
Quelqu'un a une idée comment je pourrais (…)
Je suis entrain de faire un script pour faire des archives de comics (cbz) et il me manque juste une partie ordre, dans le nom des fichiers.
#!/bin/bash
nom="POT_V1_"
mkdir $nom;
IFS=$'\n'
cpt=0;
for i in `ls *.jpg`
do
cpt=`expr $cpt + 1`;
echo "separate $i en $nom$cpt"
convert -crop 50%x100% $i temp
mv temp-0 $nom/$nom$cpt.jpg;
cpt=`expr $cpt + 1`;
mv temp-1 $nom/$nom$cpt.jpg;
done
En gros j'obtiens toto1.jpg etc, toto10.jpg et toto100.jpg.
Quelqu'un a une idée comment je pourrais (…)
Forum Programmation.shell find incorrect ?
Forum Programmation.shell inserer un espace dans une sortie de 'cut'
Bonjour a tous,
une requete probablement deja soulevee: j'ai a sortir des informations d'un fichier texte. Plusieurs infos par ligne. J'ai pour cela lancer une commande cut:
cut -c"22-25,47-55,56-64" 'source' > sortie
Ca marche, sans soucis. Mais ce n'est pas tres lisible car cut me colle les bouts coupes sans delimitation. J'ai bien essaye de mettre une option --output-delimiter mais rien n'y fait...
Existe-t'il un moyen d'inserer des espaces (ou tout autre caractere) entre les mots que j'extrais ?
Sinon (…)
une requete probablement deja soulevee: j'ai a sortir des informations d'un fichier texte. Plusieurs infos par ligne. J'ai pour cela lancer une commande cut:
cut -c"22-25,47-55,56-64" 'source' > sortie
Ca marche, sans soucis. Mais ce n'est pas tres lisible car cut me colle les bouts coupes sans delimitation. J'ai bien essaye de mettre une option --output-delimiter mais rien n'y fait...
Existe-t'il un moyen d'inserer des espaces (ou tout autre caractere) entre les mots que j'extrais ?
Sinon (…)
Forum Programmation.shell récupérer le status en sortie d'un applicatif dans un shell
dans un shell je lance un programme écrit en c++ :
./monprogramme
je voudrais récupérer la valeur passée dans le exit() au moment de la sortie du programme dans une variable du shell. par exemple le programme fait un exit(-6) et je voudrais retrouver -6 dans une variable pour faire un echo $monresult par exemple.
j'ai tenté avec $? mais je récupère toujours 0 quelque soit la valeur mise dans le exit() de mon programme ... :-(
help me
./monprogramme
je voudrais récupérer la valeur passée dans le exit() au moment de la sortie du programme dans une variable du shell. par exemple le programme fait un exit(-6) et je voudrais retrouver -6 dans une variable pour faire un echo $monresult par exemple.
j'ai tenté avec $? mais je récupère toujours 0 quelque soit la valeur mise dans le exit() de mon programme ... :-(
help me
Forum Programmation.shell script qui fonctionne dans une console mais pas entièrement avec cron
Bonjour,
mon script doit
1) enregistrer un flux (émission sur france inter) sur mon disque
2) renommer le fichier obtenu.
Si je lance mon script en console tout fonctionne. Si je le fais exécuter par cron seulement l'enregistrement fonctionne.
voici mon script :
Auriez-vous une piste voire une solution ?
Stef
mon script doit
1) enregistrer un flux (émission sur france inter) sur mon disque
2) renommer le fichier obtenu.
Si je lance mon script en console tout fonctionne. Si je le fais exécuter par cron seulement l'enregistrement fonctionne.
voici mon script :
#!/bin/bash
date=$(date +%Y_%m_%d)
/usr/bin/mplayer -ao pcm:file=/home/stef/emission/info.wav -nocache -playlist /home/stef/Desktop/info.ram
for i in info.wav ; do
echo "changer le nom pour $i => $date-$i"
mv $i $date-$i
done
Auriez-vous une piste voire une solution ?
Stef
Forum Programmation.shell Afficher un champ précis depuis un log
Bonjour,
Dans mon log de Postfix, j'ai besoin d'afficher les adresses mails qui m'ont générés un bounce.
Bon un petit cat /var/log/mail/postfix | grep "status=bounced" fonctionne. Mais ça me retourne la ligne entière. J'aimerais afficher uniquement ce qu'il y a écrit entre "to=", qui correspond au mail.
Au début, je voulais procéder avec un cut -d' ' -f7 ou un awk '{print $7'} mais le numéro du champ peut bouger des fois, et donc, je me retrouve avec un champ (…)
Dans mon log de Postfix, j'ai besoin d'afficher les adresses mails qui m'ont générés un bounce.
Bon un petit cat /var/log/mail/postfix | grep "status=bounced" fonctionne. Mais ça me retourne la ligne entière. J'aimerais afficher uniquement ce qu'il y a écrit entre "to=", qui correspond au mail.
Au début, je voulais procéder avec un cut -d' ' -f7 ou un awk '{print $7'} mais le numéro du champ peut bouger des fois, et donc, je me retrouve avec un champ (…)
Forum Programmation.shell erreur if , fi ?
Bonjour
j'écris juste un script pour changer les noms de fichiers de minuscule en majuscule :
Bash me donne toujours l'erreur de sortie sur le fi , l'output du debug
j'écris juste un script pour changer les noms de fichiers de minuscule en majuscule :
#!/bin/bash -x
myscriptname=`basename $0`;
for i in `ls -A`
do
if [ $i = $myscriptname ];
then
echo "Sorry, can't rename myself!"
elif [ $i != $myscriptname ];
newname=`echo $i | tr a-z A-Z`
mv $i $newname
fi
done
Bash me donne toujours l'erreur de sortie sur le fi , l'output du debug
++ basename ./tr1.sh
+ myscriptname=tr1.sh
./tr1.sh: line 15: syntax error near (…)
Forum Programmation.shell Trier avec sort
Bonjour,
Je m'arrache les cheveux depuis ce matin avec les man de sort. Quelqu'un saurait-il me dire comment je peux trier avec sort par ordre numérique croissant le résultat suivant :
/dev/md/dsk/d0 /dev/md/dsk/d100 /dev/md/dsk/d101 /dev/md/dsk/d3 /dev/md/dsk/d4 /dev/md/dsk/d40 /dev/md/dsk/d7 /dev/md/dsk/d80 /dev/md/dsk/d81
Forum Programmation.shell recherche mot dans fichiers ascii
Bonjour
je souhaite rechercher le mot toto dans tous les fichiers ascii du répertoire courant et de ses sous répertoires (autant les fichiers cachés que les sous-répertoires cachés)
Je sais que la commande serait qqch comme : grep -r toto *
(et encore, je ne suis pas sûr que cela prenne en compte les objets cachés)
Néanmoins comme mes sous-répertoires contiennent des fichiers binaires très volumineux (jusque 20 GB), pour pas que la recherche prennent des jours, il faudrait pouvoir (…)
je souhaite rechercher le mot toto dans tous les fichiers ascii du répertoire courant et de ses sous répertoires (autant les fichiers cachés que les sous-répertoires cachés)
Je sais que la commande serait qqch comme : grep -r toto *
(et encore, je ne suis pas sûr que cela prenne en compte les objets cachés)
Néanmoins comme mes sous-répertoires contiennent des fichiers binaires très volumineux (jusque 20 GB), pour pas que la recherche prennent des jours, il faudrait pouvoir (…)
Forum Programmation.shell syslog.conf comment le modifier?
Bonsoir, je découvre le daemon syslogd dans le cadre de l'apprentissage d'une licence LPI102, j'ai fait quelques tests sur mon ubuntu du bureau et je il y a quelques points que j'aimerai éclaircir:
le fichier de base ressemble à ça:
------------------
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
#cron.* /var/log/cron.log
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
lpr.* -/var/log/lpr.log
mail.* -/var/log/mail.log
user.* -/var/log/user.log
..........
------------------
et par exemple j'aimerais envoyer tout ce qui concerne "dhclient" dans tty6, j'ajoute donc la ligne:
dhclient.* /dev/tty6
et ça ne (…)
le fichier de base ressemble à ça:
------------------
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
#cron.* /var/log/cron.log
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
lpr.* -/var/log/lpr.log
mail.* -/var/log/mail.log
user.* -/var/log/user.log
..........
------------------
et par exemple j'aimerais envoyer tout ce qui concerne "dhclient" dans tty6, j'ajoute donc la ligne:
dhclient.* /dev/tty6
et ça ne (…)
Forum Programmation.shell sed, c'est dien
Bonjour :)
J'ai la joie de me frotter à sed. Chaque fois j'apprends une astuce. Ca fait beaucoup d'astuces je trouve :-)
J'ai ce genre de texte à traiter:
Je sors ça avec la commande:
J'ai la joie de me frotter à sed. Chaque fois j'apprends une astuce. Ca fait beaucoup d'astuces je trouve :-)
J'ai ce genre de texte à traiter:
Unit UnitType Status %Cmpl Stripe Size(GB) Cache AVerify IgnECC
------------------------------------------------------------------------------
u0 RAID-1 OK - - 698.637 ON - -
Port Status Unit Size Blocks Serial
---------------------------------------------------------------
p0 OK u0 698.63 GB 1465149168 GTC200P8GXB012
p1 OK u0 698.63 GB 1465149168 GTC200P8GXB5G4
Je sors ça avec la commande:
tw_cli /$(tw_cli show | grep (…)