Salut à tous !
J'aimerais faire un chown -R sur un répertoire en excluant un sous répertoire.
Ex:
[root@WW-NOITST08 miles]# ls -l ./MilesRoot
total 1376
drwxrwxrwx 3 nlaccept nlaccept 12288 sep 19 14:47 batch
drwxrwxrwx 3 nlaccept nlaccept 4096 sep 19 11:39 command
drwxrwxrwx 8 nlaccept nlaccept 4096 sep 4 12:16 milesweb
drwxrwxrwx 3 nlaccept nlaccept 4096 sep 4 12:16 policy
drwxr-xr-x 1 root root 4096 sep 19 14:57 report
--> chown -R --exclude report nlaccept:nlaccept ./MilesRoot
Malheureusement, l'option exclude (…)
Forum Programmation.shell petite erreur
Depuis pas mal d'années je me débrouille avec peu de connaissances en shell :)
mais j'ai décidé de pouvoir en coder plus qu'en bidouiller
j'ai une erreur avec ce script
#!/bin/bash
for file in *
if [ "$file" = "test" ]
then rm test
else
echo "ok"
fi
line 3: syntax error near unexpected token `if'
line 3: `if [ "$file" = "test" ]
Merci :)
mais j'ai décidé de pouvoir en coder plus qu'en bidouiller
j'ai une erreur avec ce script
#!/bin/bash
for file in *
if [ "$file" = "test" ]
then rm test
else
echo "ok"
fi
line 3: syntax error near unexpected token `if'
line 3: `if [ "$file" = "test" ]
Merci :)
Forum Programmation.shell galere sur un script
bonjour ,
j'utilise ceci dans un script :
ce bout de code doit parcourir le fichier , me compte le nombre de "c+un_chiffre" qu'il trouve , et si il en trouve plus que 0 il me le declare juste en dessous de la ligne qui contient (…)
j'utilise ceci dans un script :
for i in `seq 0 32`;
if [ "$(sed '/^[ ]*#\|#\|^$\|^\n*$/d' $file | grep c${i} | wc -l)" -gt "0" ]
then
j=$(($i+1))
sed -i -e '/\<hoplahop\>/a \temp c'${i}' = variable['$j']' $file
fi
done
ce bout de code doit parcourir le fichier , me compte le nombre de "c+un_chiffre" qu'il trouve , et si il en trouve plus que 0 il me le declare juste en dessous de la ligne qui contient (…)
Forum Programmation.shell [sed] substitution speciale
dans mon fichier j'ai des variables s0, s1, s2,.. , sn et je voudrait les substituer par variable[0]; variable[1]; variable[2]; variable[n];
comment faire svp
comment faire svp
Forum Programmation.shell [sed] supprimer les ligne blanche a la fin d'un fichier
bonjour
pour supprimer les lignes blanches uniquement a la fin d'un fichier j'utilise
sed -e :a -e '/^\n*$\|^[ ]*$\|^[ t]*$/ {$d;N;ba' -e '}' $file$tmp1 > $file$tmp2
mais ça ne fonctionne pas
quelqu'un aurait une idée????
merci
pour supprimer les lignes blanches uniquement a la fin d'un fichier j'utilise
sed -e :a -e '/^\n*$\|^[ ]*$\|^[ t]*$/ {$d;N;ba' -e '}' $file$tmp1 > $file$tmp2
mais ça ne fonctionne pas
quelqu'un aurait une idée????
merci
Forum Programmation.shell aide sur un script
bonjour, je suis en train de faire un script shell et je suis debutant donc je galere pas mal ,j'ai deja posté des post car j'ai l'impression d'avoir du mal a chaque ligne , donc je vais vous mettre le script entier pour que vous puissez m'aider a avoir un script correct
[CODE]
#!/bin/bash
#################################
#################################
prefix="OGL_"
tmp0="_tmp0_"
tmp1="_tmp1_"
tmp2="_tmp2_"
tmp3="_tmp3_"
tmp4="_tmp4_"
tmp5="_tmp5_"
end="END"
for file in [^$prefix]* #ici ça ne fonctionne pas, le script s'exécute également sur les fichier (…)
[CODE]
#!/bin/bash
#################################
#################################
prefix="OGL_"
tmp0="_tmp0_"
tmp1="_tmp1_"
tmp2="_tmp2_"
tmp3="_tmp3_"
tmp4="_tmp4_"
tmp5="_tmp5_"
end="END"
for file in [^$prefix]* #ici ça ne fonctionne pas, le script s'exécute également sur les fichier (…)
Forum Programmation.shell sed et caractères spéciaux
bonjour tout le monde
je continue a galerer avec mon script et sed:
je voudrait remplacer tous les "//" de mon fichier par "#"
j'ai essayer :
sed 's/"\/\/"/"\#"/g'
sed 's/"//"/"#"/g'
$doubleslash="//"
$diese="#"
sed 's/"'$doubleslash'"/"'$diese'/g'
sed 's/\<\x2F\x2F\>/\<\x23\>/g'
mais rien ne fonctionne, si quelqu'un peut m'éclairer
merci d'avance
je continue a galerer avec mon script et sed:
je voudrait remplacer tous les "//" de mon fichier par "#"
j'ai essayer :
sed 's/"\/\/"/"\#"/g'
sed 's/"//"/"#"/g'
$doubleslash="//"
$diese="#"
sed 's/"'$doubleslash'"/"'$diese'/g'
sed 's/\<\x2F\x2F\>/\<\x23\>/g'
mais rien ne fonctionne, si quelqu'un peut m'éclairer
merci d'avance
Forum Programmation.shell condition et script shell
bonjour
Avec un script , je voudrait, dans un répertoire donné, traiter tout les fichiers ne commençant pas par une chaîne de caractère ("aaa" par exemple ) et ne pas traiter nom plus mon fichier script qui se nomme automodif.sh
je me doute bien qui faut utiliser les conditionnels (if then else done) mais je ne sais pas comment traiter les nom de fichier pour savoir si effectivement il commence ou pas par "aaa"
quelqu'un aurait il un exemple
merci (…)
Avec un script , je voudrait, dans un répertoire donné, traiter tout les fichiers ne commençant pas par une chaîne de caractère ("aaa" par exemple ) et ne pas traiter nom plus mon fichier script qui se nomme automodif.sh
je me doute bien qui faut utiliser les conditionnels (if then else done) mais je ne sais pas comment traiter les nom de fichier pour savoir si effectivement il commence ou pas par "aaa"
quelqu'un aurait il un exemple
merci (…)
Forum Programmation.shell script bash avec sed
bonjour,
j'essaie de faire un petit script shell qui pourrait prendre tout les fichier d'un répertoire et remplacer les chaînes de caractères "add" et "mov" par ces même chaîne en majuscule ( c'est à dire "ADD" et "MOV") avec l'utilitaire SED , mais je n'y arrive pas , je n'arrive pas a trouver la bonne expression , est ce que quelqu'un pourrait me fournir un exemple ...
merci d'avance
j'essaie de faire un petit script shell qui pourrait prendre tout les fichier d'un répertoire et remplacer les chaînes de caractères "add" et "mov" par ces même chaîne en majuscule ( c'est à dire "ADD" et "MOV") avec l'utilitaire SED , mais je n'y arrive pas , je n'arrive pas a trouver la bonne expression , est ce que quelqu'un pourrait me fournir un exemple ...
merci d'avance
Forum Programmation.shell action sur le résultat d'une commande
Bonjour,
je cherche à supprimer des fichiers dans un répertoire, j'arrive à les lister mais pas à les passer dans la moulinette de rm.
c'est un ls avec plusieurs grep, ex :
ls | grep A | grep -v B | grep .C
et après j'arrive pas à supprimer le résultat.
Pareil avec mv, je veux ajouter une extension à une liste de fichier obtenus avec plusieurs grep.
Merci d'avance.
je cherche à supprimer des fichiers dans un répertoire, j'arrive à les lister mais pas à les passer dans la moulinette de rm.
c'est un ls avec plusieurs grep, ex :
ls | grep A | grep -v B | grep .C
et après j'arrive pas à supprimer le résultat.
Pareil avec mv, je veux ajouter une extension à une liste de fichier obtenus avec plusieurs grep.
Merci d'avance.
Forum Programmation.shell intervertir 2 caracteres d'une variable
supposons
a='ab'
je veux avoir ba
Si je veux intervertir ces 2 caracteres, est-ce que je peux utiliser la commande xp de vi qui les échange (dans sed/awk/xxx)?
Hélas je suis avec ksh, donc celui qui me répond d'utiliser rev -> pas possible :-(
merci
a='ab'
je veux avoir ba
Si je veux intervertir ces 2 caracteres, est-ce que je peux utiliser la commande xp de vi qui les échange (dans sed/awk/xxx)?
Hélas je suis avec ksh, donc celui qui me répond d'utiliser rev -> pas possible :-(
merci
Forum Programmation.shell cat /etc/fstab | fgrep -v $udi > /etc/fstab
Bonjour à tous,
Voilà, j'ai une petite ligne de shell script qui plante parfois, et je n'arrive pas à comprendre pourquoi:
Cette ligne est simplement supposée retirer toutes les lignes comprenant $udi (qui est toujours défini) du fichier fstab, $udi n'étant pas un motif complexe (une simple chaîne de caractères).
Parfois, et c'est hélas non reproduisible, je me retrouve avec un fstab totalement vide au lieu d'avoir juste le contenu du fichier (…)
Voilà, j'ai une petite ligne de shell script qui plante parfois, et je n'arrive pas à comprendre pourquoi:
cat /etc/fstab | fgrep -v $udi > /etc/fstab
Cette ligne est simplement supposée retirer toutes les lignes comprenant $udi (qui est toujours défini) du fichier fstab, $udi n'étant pas un motif complexe (une simple chaîne de caractères).
Parfois, et c'est hélas non reproduisible, je me retrouve avec un fstab totalement vide au lieu d'avoir juste le contenu du fichier (…)
Forum Programmation.shell Read
M & Mme Linuxiens, Bonjour !
Voici l'exposé de ma requette :
Imaginons un programme qui dit ceci :
Problème : l'invite pour entrer le texte ( la commande read) est assez moche à utliser ! On ne peut pas naviguer dans le texte, ni effacer plusieurs lignes, etc. Pour bien faire, il me faudrait un truc du genre :
C'est à dire une variable que je puisse (…)
Voici l'exposé de ma requette :
Imaginons un programme qui dit ceci :
read message
...
wget "index.php?text=$message"
Problème : l'invite pour entrer le texte ( la commande read) est assez moche à utliser ! On ne peut pas naviguer dans le texte, ni effacer plusieurs lignes, etc. Pour bien faire, il me faudrait un truc du genre :
touch text
emacs -nw text
message="cat text"
C'est à dire une variable que je puisse (…)
Forum Programmation.shell find et incomplete statement
Bonjour
Je commence un script pour détruire différents fichiers dans des directories suivant plusieurs critères.
Pour l'instant mon script s'arrête sur le find avec '"incomplete statement", alors que si je lance la ligne affichée (si je le lance avec ksh -x -v script)
la même commande trouve plein de fichiers
Mon script
#!/usr/bin/sh
#
dir1="/tmp"
typ1="-type f"
ret1=5
fin="-print -exec ls -al {} \;"
find $dir1 $typ1 -mtime +$ret1 $fin
$
Lancé avec -x -v, ça donne
+ find /tmp (…)
Je commence un script pour détruire différents fichiers dans des directories suivant plusieurs critères.
Pour l'instant mon script s'arrête sur le find avec '"incomplete statement", alors que si je lance la ligne affichée (si je le lance avec ksh -x -v script)
la même commande trouve plein de fichiers
Mon script
#!/usr/bin/sh
#
dir1="/tmp"
typ1="-type f"
ret1=5
fin="-print -exec ls -al {} \;"
find $dir1 $typ1 -mtime +$ret1 $fin
$
Lancé avec -x -v, ça donne
+ find /tmp (…)
Forum Programmation.shell liens symboliques récursifs pour fichiers avec espaces
bonsoir les vétérans du shell !
J'ai un dossier avec des sous-dossiers contenant des espaces. Ces sous-dossiers contiennent eux-même des fichiers avec parfois des espaces.
[http://www.inform-fiction.org/I7Downloads/Extensions/]
C'est pour un programme dont la version linux vient de sortir récemment, et malheureusement pour la version linux il faut avoir les noms de tous ces fichiers en minuscules (mais avec espace). Il faut donc utiliser des liens symboliques vers les fichiers avec les majuscules. Si ce n'était que cela, cela pourrait (…)
J'ai un dossier avec des sous-dossiers contenant des espaces. Ces sous-dossiers contiennent eux-même des fichiers avec parfois des espaces.
[http://www.inform-fiction.org/I7Downloads/Extensions/]
C'est pour un programme dont la version linux vient de sortir récemment, et malheureusement pour la version linux il faut avoir les noms de tous ces fichiers en minuscules (mais avec espace). Il faut donc utiliser des liens symboliques vers les fichiers avec les majuscules. Si ce n'était que cela, cela pourrait (…)
Forum Programmation.shell Savoir si un rsync s'est bien derouler
Bonjour,
voila je fais un script bash pour sauvegarder des données. pour cela j'utilise rsync a travers un ssh
une fois les données transferé, je les gzip et je stock sur un repertoire de mon linux
mais la connection que j'utilise entre les 2 machine est instable (adsl) et la taille des fichiers importantes.
Il arrive donc que le tunnel ssh soit coupé et cela coupe rsync
j'aimerai savoir si le rsync c'est bien deroulé ou pas (si il s'est (…)
voila je fais un script bash pour sauvegarder des données. pour cela j'utilise rsync a travers un ssh
une fois les données transferé, je les gzip et je stock sur un repertoire de mon linux
mais la connection que j'utilise entre les 2 machine est instable (adsl) et la taille des fichiers importantes.
Il arrive donc que le tunnel ssh soit coupé et cela coupe rsync
j'aimerai savoir si le rsync c'est bien deroulé ou pas (si il s'est (…)
Forum Programmation.shell Imprimer les lignes avant et apres l'expression rechercher
J'ai un fichier avec le format suivant :
Est ce qu'il y a une commande sous unix qui permet d'avoir en sortie tous les nom des fichiers avec : "processed : 0", (…)
Fichier : mon_fichier1
Begin : 2007-08-29
processed : 0
End : 2007-08-29
Fichier : mon_fichier2
Begin : 2007-08-29
processed : 4
End : 2007-08-29
Fichier : mon_fichier3
Begin : 2007-08-29
processed : 6
End : 2007-08-29
Fichier : mon_fichier4
Begin : 2007-08-29
processed : 0
End : 2007-08-29
Est ce qu'il y a une commande sous unix qui permet d'avoir en sortie tous les nom des fichiers avec : "processed : 0", (…)
Forum Programmation.shell Substitution en bash
Bonsoir,
J'ai un chaîne de caractères du type :
/un chemin/vers un/fichier
dans la variable FILE
et je souhaiterais en faire :
/un\ chemin/vers\ un/fichier
et le mettre de FILE2
Je ne comprends pas pourquoi
FILE2=${FILE/ /\\ /}
me renvoie :
FILE2=${FILE/ /\\ /}
Si quelqu'un pouvait me renseigner...
Merci d'avance
J'ai un chaîne de caractères du type :
/un chemin/vers un/fichier
dans la variable FILE
et je souhaiterais en faire :
/un\ chemin/vers\ un/fichier
et le mettre de FILE2
Je ne comprends pas pourquoi
FILE2=${FILE/ /\\ /}
me renvoie :
FILE2=${FILE/ /\\ /}
Si quelqu'un pouvait me renseigner...
Merci d'avance
Forum Programmation.shell Comportement étrange de /bin/more
Voilà, je me demandais pourquoi /bin/more, intégré dans un script bash, se comportait différemment lorsque ledit script est lancé depuis un lanceur/menu du bureau (en l'occurence Gnome) oubien dans un terminal.
Dans un terminal (dont le shell est bash), /bin/more m'affiche bien le contenu du fichier passé en argument.
Depuis un raccourci, il rajoute en première ligne "::::::::::: /chemin/du/fichier :::::::::::".
C'est d'autant plus embêtant que ça ne le faisait pas avant !
Avant quoi ? récemment je suis passé de (…)
Dans un terminal (dont le shell est bash), /bin/more m'affiche bien le contenu du fichier passé en argument.
Depuis un raccourci, il rajoute en première ligne "::::::::::: /chemin/du/fichier :::::::::::".
C'est d'autant plus embêtant que ça ne le faisait pas avant !
Avant quoi ? récemment je suis passé de (…)
Forum Programmation.shell Nommage avec incrémentation automatique.
Bonjour,
Je me suis crée un script qui me permet de faire des copies d'écrans.
Les fichiers générés sont stockés dans mon répertoire utilisateur.
Je souhaiterai utiliser un mécanisme simple me permettant d'attribuer un nom unique à chacun de ces fichiers.
Je voudrais une incrémentation classique du type :
Screenshot 1
Screenshot 2
etc ..
Ou mieux avec insertion de 0 pour que le tri lexicographique soit pertinent :
Screenshot 01
Screenshot 02
etc ..
Pour l'instant je suis en (…)
Je me suis crée un script qui me permet de faire des copies d'écrans.
Les fichiers générés sont stockés dans mon répertoire utilisateur.
Je souhaiterai utiliser un mécanisme simple me permettant d'attribuer un nom unique à chacun de ces fichiers.
Je voudrais une incrémentation classique du type :
Screenshot 1
Screenshot 2
etc ..
Ou mieux avec insertion de 0 pour que le tri lexicographique soit pertinent :
Screenshot 01
Screenshot 02
etc ..
Pour l'instant je suis en (…)
Forum Programmation.shell Plus de 9 parenthèses de mémorisation ?
bonjour
Quand on utilise des parenthèses de mémorisation, avec SED par exemple, on identifie son contenu à un chiffre que l'on écrit de cette façon : \1 \2 etc...
Mais comment cela se passe-t-il quand on arrive à dix ? De quelle façon doit-on le noter ?
<voici un exemple :
echo abcdefghij | sed 's#\(a\)\(b\)\(c\)\(d\)\(e\)\(f\)\(g\)\(h\)\(i\)\(j\)#\1\2\3\4\5\6\7\8\9\10#'
Comment fais-je pour récupérer le "j" ?
Merci d'avance
Forum Programmation.shell Copier le contenu d'un fichier dans un autre
Bonjour,
Je souhaiterai copier le contenu d'un fichier pour le mettre dans un autre . Exemple :
J'ai un fichier source qui contient une 30aine de lignes, on va dire qu'il s'appelle fic_source.txt
Le fichier de destination (là où doit être copié le contenu de fic_source.txt) s'appelle fic_dest.conf.
Comment faire pour mettre le contenu de fic_source.txt à la suite de fic_dest.conf, sans mettre de "echo "blabla" >> fic_dest.conf" pour chaque ligne ?
Merci d'avance ;)
Je souhaiterai copier le contenu d'un fichier pour le mettre dans un autre . Exemple :
J'ai un fichier source qui contient une 30aine de lignes, on va dire qu'il s'appelle fic_source.txt
Le fichier de destination (là où doit être copié le contenu de fic_source.txt) s'appelle fic_dest.conf.
Comment faire pour mettre le contenu de fic_source.txt à la suite de fic_dest.conf, sans mettre de "echo "blabla" >> fic_dest.conf" pour chaque ligne ?
Merci d'avance ;)
Forum Programmation.shell CSH: ps
Bonjour à tous,
J'aimerais filtrer les processus actif, activable (dont l'état est O et R ) et je ne vois pas très bien comment je pourrais faire de manière simple en csh.
J'utilise ps pour obtenir des infos sur les process , mais je ne vois rien de le man qui pourrait m'aider.
Je pense utiliser awk , qu'en pensez vous ?
D'avance merci pour votre aide
J'aimerais filtrer les processus actif, activable (dont l'état est O et R ) et je ne vois pas très bien comment je pourrais faire de manière simple en csh.
J'utilise ps pour obtenir des infos sur les process , mais je ne vois rien de le man qui pourrait m'aider.
Je pense utiliser awk , qu'en pensez vous ?
D'avance merci pour votre aide
Forum Programmation.shell dbus
bonjour, :-)
il est possible lorsque que l'on connait le chemin et l'instance d'un programme relier a dbus de lister ces methodes et parametre mais comment a partir d'un executable ou d'un processus peut ton le savoir :
par exemple rythmbox :
org.gnome.Rhythmbox /org/gnome/Rhythmbox/Player
sinon pour les methodes j'utilise :
dbus-send --session --type=method_call --print-reply --dest=org.gnome.Rhythmbox /org/gnome/Rhythmbox/Player org.freedesktop.DBus.Introspectable.Introspect
quelqu'un a une idée?
il est possible lorsque que l'on connait le chemin et l'instance d'un programme relier a dbus de lister ces methodes et parametre mais comment a partir d'un executable ou d'un processus peut ton le savoir :
par exemple rythmbox :
org.gnome.Rhythmbox /org/gnome/Rhythmbox/Player
sinon pour les methodes j'utilise :
dbus-send --session --type=method_call --print-reply --dest=org.gnome.Rhythmbox /org/gnome/Rhythmbox/Player org.freedesktop.DBus.Introspectable.Introspect
quelqu'un a une idée?
Forum Programmation.shell recherche d'une ancienne commande utilée dans le shell
Bonjour
J'ai déjà vu cette astuce sur le site mais impossible de la retrouver.
Donc je repose la question
Dans le shell, on peut "remonter" sur les dernières commandes utilisées.
Comment retrouver dans cette série de commandes, une en particulier via un mot clé.
par exemple je voudrais retrouver toutes les commandes passées dans le shell contenant rsync , comment faire ?
Merci
J'ai déjà vu cette astuce sur le site mais impossible de la retrouver.
Donc je repose la question
Dans le shell, on peut "remonter" sur les dernières commandes utilisées.
Comment retrouver dans cette série de commandes, une en particulier via un mot clé.
par exemple je voudrais retrouver toutes les commandes passées dans le shell contenant rsync , comment faire ?
Merci