J'ai un script et j'aimerai pouvoir faire un fichier de trace.
J'avais pensé à cela mais cela ne donne un fichier log mais vide.
#find ~/Bureau/Linux/ -exec sed -i 's/a_intouch/w_intouch/g' {} \; > fichier.log
#find ~/Bureau/Linux/ -exec sed -i 's/b_intouch/x_intouch/g' {} \; > fichier.log
Quequ'un peut me donner son avis.
# -e
Posté par Lol Zimmerli (site web personnel, Mastodon) . Évalué à 3.
La gelée de coings est une chose à ne pas avaler de travers.
[^] # Re: -e
Posté par supai . Évalué à 1.
[^] # Re: -e
Posté par supai . Évalué à 1.
[^] # Re: -e
Posté par pampryl . Évalué à 5.
[^] # Re: -e
Posté par supai . Évalué à 1.
mon fichier ne trace rien.
find ~/Bureau/Linux/test_en_cours/test/test_intou/ -exec sed -e pas sed -i 's/a_intouch/w_intouch/g' {} \;
[^] # Re: -e
Posté par Lol Zimmerli (site web personnel, Mastodon) . Évalué à 4.
La gelée de coings est une chose à ne pas avaler de travers.
[^] # Re: -e
Posté par supai . Évalué à 1.
[^] # Re: -e
Posté par benoar . Évalué à 2.
[^] # Re: -e
Posté par Pascal Terjan (site web personnel) . Évalué à 4.
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if extension supplied)
[...]
If no -e, --expression, -f, or --file option is given, then the first non-option argument is taken as the sed script to interpret.
# 2 choses
Posté par Pascal Terjan (site web personnel) . Évalué à 4.
2/ utilise >> au lieu de > dans la deuxième commande
[^] # Re: 2 choses
Posté par supai . Évalué à 1.
[^] # Re: 2 choses
Posté par Jacques L'helgoualc'h (site web personnel) . Évalué à 1.
[^] # Re: 2 choses
Posté par Jacques L'helgoualc'h (site web personnel) . Évalué à 2.
find ... -exec sed -i -e 's/a_intouch/w_intouch/g ; s/b_intouch/x_intouch/g' {} + ...
Le + au lieu de \; permet de ne pas lancer un sed par fichier.
[^] # Re: 2 choses
Posté par supai . Évalué à 2.
Mais je ne comprends pas bien un truc.
On peut lancer plusieur fois des commandes et les cumuler avec le +.
Mais est ce que je peux ajourter ma sortie de direction après le + du style
find ... -exec sed -i -e 's/a_intouch/w_intouch/g ; s/b_intouch/x_intouch/g' {} + >> trace.log
Mais je ne pense pas
[^] # Re: 2 ou 3 choses
Posté par Jacques L'helgoualc'h (site web personnel) . Évalué à 1.
find ~/ -exec echo Echo {} \; | grep -c ^Echo
find ~/ -exec echo Echo {} + | grep -c ^Echo
find ~/ | xargs echo Echo | grep -c ^Echo
Les deux dernières regrouperont les arguments trouvés par find.
On peut même mettre plusieurs blocs -exec ... + à la suite, mais si tu veux une séquence logique, il vaut mieux écrire un script capable de traiter plusieurs arguments à la fois :
... -exec ton_script.sh {} +
Sinon, il faut répéter l'argument
... -exec sh -c "echo A "{}"; echo B "{} \;
(le + n'est utilisable qu'avec un seul {} à la fin).
Si, la redirection peut être écrite n'importe où (en dehors d'une chaîne de caractères). Si tu veux la limiter à la commande en -exec, il faut utiliser le sh -c "sous-script shell avec ses redirections".
[^] # Re: 2 ou 3 choses
Posté par supai . Évalué à 1.
Et en grand merci pour jouer les prof et prendre le temps d'expliquer.
C'est super cool...
Cela donne encore plus envie d'apprendre.
[^] # Re: 2 ou 3 choses
Posté par NeoX . Évalué à 3.
En tout cas je prends note de cela et je teste des demain.
Et en grand merci pour jouer les prof et prendre le temps d'expliquer.
C'est super cool...
Cela donne encore plus envie d'apprendre.
pour apprendre il faut lire les manuels ET les comprendre
(man find, man sed, man xargs dans un terminal ou sur google)
il faut aussi comprendre ce que tu lis (sur internet et dans les manuels) et ne pas appliquer betement/sauvagement
exemple avec le
find ~/Bureau/Linux/test_en_cours/test/test_intou/ -exec sed -e pas sed -i 's/a_intouch/w_intouch/g' {} \;
ou tu as repris sans comprendre ce que te proposais un autre
[^] # Re: 2 ou 3 choses
Posté par Jacques L'helgoualc'h (site web personnel) . Évalué à 1.
http://sed.sf.net/
[^] # Re: 2 ou 3 choses
Posté par supai . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.