Script pour ajouter des espaces entre les lignes

bompi a dit:
J'ai un peu l'impression d'avoir perdu du temps, là, non ? :siffle:
À part ça, tu as deux erreurs :
1) remplacer
Bloc de code:
zeOUPUT=$2
par
Bloc de code:
zeOUTPUT=$2
2) remplacer
Bloc de code:
echo "\n"
par
Bloc de code:
echo ""
Bé non t'a spas perdu ton temps la preuve la j'apprend avec toi ^^.

Eh eh Monsieur je comprend pas ça marche toujours pas et pourtant tout est bien écrit :rose: :rose: :rose:
 
Comment lances-tu le bazar ?
 
bompi a dit:
Comment lances-tu le bazar ?


Bah je lance le terminal, je fais un copier coller du prog que j'ai fait à partir d'un traitement de texte, je colle dans le terminal et sans que je n'ai appuyé sur entrée il me met Commande éxécutée.

Mais je pense qu'il ne lit pas tout mon programme car dès que j'écris fi il me met logout opération terminée alors qui lui reste encore du script a faire.:(
 
Bon. Fais-en un fichier ("inter.sh", par exemple), puis passe-le en mode exéctable ("chmod 755 inter.sh"), enfin, lance-le avec ses paramètres.
Sinon, ça ne marchera jamais ...
 
bompi a dit:
Bon. Fais-en un fichier ("inter.sh", par exemple), puis passe-le en mode exéctable ("chmod 755 inter.sh"), enfin, lance-le avec ses paramètres.
Sinon, ça ne marchera jamais ...


J'ai fait ça

Bloc de code:
#!/bin/bash

if [ $# -lt 2 ]
then
    echo "Usage : $0 <toto.rtf> <toto2.rtf> [4]"
    exit 1
fi

zeINPUT=$1
zeOUPUT=$2
zeNUMBER=${3:-2}

while read line
do
    echo $line
    for (( i=1 ; i <= $zeNUMBER ; i++ ))
    do
printf "     %s\n"
#       # echo "\n"
    done 
done < $1 >$2


J'ai mis ensuite dans le terminal ca

chmod +x toto.sh

puis ca

toto.sh toto.rtf toto2.rtf 4

et il me met toto.sh command not found , je comprend pas vraiment là :( :(
 
Sur les systèmes Unix, par défaut, on ne met plus '.' dans le chemin. Ce qui fait que : soit toto.sh est dans les chemins fournis par la variable PATH, soit tu l'appelles avec son chemin complet (absolu ou relatif). Dans ton cas, il devrait suffire de l'invoquer ainsi :
Bloc de code:
./toto.sh toto.rtf toto2.rtf 4
 
Ou bien créer un répertoire ~/bin dans sa maison dans lequel se trouvent les scripts, et ajouter ces lignes à ~/.profile :
Bloc de code:
PATH=${HOME}/bin:$PATH
export PATH
Comme cela, les scripts s'exécutent partout comme des commandes de Terminal.
 
Ca y est j'ai tout fait ce que vous m'avez dit MAIS j'ai une erreur de script :(

Bloc de code:
#!/bin/bash

if [ $# -lt 2 ]
then
    echo "Usage : $0 <toto.rtf> <toto2.rtf> [4]"
    exit 1
fi

zeINPUT=$1
zeOUPUT=$2
zeNUMBER=${3:-2}

while read line
do
    echo $line
    for (( i=1 ; i <= $zeNUMBER ; i++ ))
    do
printf "     %s\n"
#       # echo "\n"
    done 
done < $1 >$2
puis chmod +x toto.sh

et ./toto.sh toto.rtf toto2.rtf 4

ET IL ME MET UNE ERREUR

Bloc de code:
./toto.sh: line 1: {rtf1macansicpg10000cocoartf824cocoasubrtf380: command not found
./toto.sh: line 2: syntax error near unexpected token `}'
./toto.sh: line 2: `{\fonttbl\f0\fnil\fcharset77 Monaco;}'
Le seul truc que j'ai compris c'est qu'apparemment il manque une } mais y'en a pas

Help .
Et si je pouvais le finir ce soir , je serais trop content :up: :up: :up: :up:
 
Il me semble que certains éditeurs de texte tel que BBEdit permettent de rechercher/remplacer des patterns comme \n (retour à la ligne). Si tel est le cas, il suffit de faire rechercher \n et remplacer par \n\n\n\n.
 
molgow a dit:
Il me semble que certains éditeurs de texte tel que BBEdit permettent de rechercher/remplacer des patterns comme \n (retour à la ligne). Si tel est le cas, il suffit de faire rechercher \n et remplacer par \n\n\n\n.


Bah oui mais si je fais ca ca fait que changer manuellement et je veux pouvoir changer juste au niveau des parametres.

En faite je suis sur Mac là et j'utilise TextEdit pour faire mon toto.sh , c'est grave ??:confused:


Vous voyez ou est le probleme ?
 
Oui car ton fichier 'toto.sh' a été enregistré comme fichier au format RTF. Il te faut préciser dans Textedit d'éditer le fichier comme un fichier texte.

Par ailleurs, je ne discute pas le bien fondé de l'entreprise mais ajouter des lignes supplémentaires au milieu de balises RTF, je ne sais pas si c'est au poil (cf. tes fichiers d'exemple).
 
bompi a dit:
Oui car ton fichier 'toto.sh' a été enregistré comme fichier au format RTF. Il te faut préciser dans Textedit d'éditer le fichier comme un fichier texte.

Par ailleurs, je ne discute pas le bien fondé de l'entreprise mais ajouter des lignes supplémentaires au milieu de balises RTF, je ne sais pas si c'est au poil (cf. tes fichiers d'exemple).


Je ne comprend pas , je dois l'enregistrer en tant que fichier rtf ?? bah il est déjà en RTF :confused: :confused: , j'ai juste changer l'extension en .sh . Je ne comprend pas trop :confused: Désolé :rose:
 
HImac in touch a dit:
Vous voyez ou est le probleme ?
C'est bizarre, car le script fonctionne très bien chez moi, sur des .txt, il est vrai.
C'est d'ailleurs pour cela que je ne travaille que sur du texte pur, que je mets ensuite en forme avec LaTeX. Le .rtf, le .doc etc posent plein de problèmes quand on veut utiliser les commandes de Terminal, puisqu'ils ne contiennent pas seulement le texte, mais le codage de mise en forme.
 
  • J’aime
Réactions: HImac in touch
FjRond a dit:
C'est bizarre, car le script fonctionne très bien chez moi, sur des .txt, il est vrai.
C'est d'ailleurs pour cela que je ne travaille que sur du texte pur, que je mets ensuite en forme avec LaTeX. Le .rtf, le .doc etc posent plein de problèmes quand on veut utiliser les commandes de Terminal, puisqu'ils ne contiennent pas seulement le texte, mais le codage de mise en forme.


J'utilise quoi alors pour avoir du .txt , quel petit logiciel ??
:confused: :confused: pour Mac
 
Hum ...
Textedit écrit par défaut des fichiers au format RTF, sauf si on change ce défaut.
L'extension ne fait rien à l'affaire, c'est juste le codage. C'est dans les préférences, pour "New document", que ça se décide.
Si tu fais un 'cat toto.sh' tu pourras constater ce que je te dis.

Pour éditer, tu as donc Textedit, TextWrangler, SMultron, JExt, JEdit etc. Tous gratuits.
 
CA MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARCHE MERCI MERCI MERCI MERCI BOMPI :D :D. Mais je pense à un petit truc :rose: :rose: tout minus, comment je fais si le fichier de destination existe deja , j'aurais voulu le faire choisir entre soit décider de l'écraser soit ne rien faire :rose: :rose: s'il te plait.
 
Il te faut ajouter un code du genre :
Bloc de code:
if [ -f "$2" ] ; then
  echo "Overwrite $2 (y/n)";
  read -r -e overwrite
  if [ "$overwrite" != "y" ] ; then
    exit 1;
  fi;
fi
 
bompi a dit:
Il te faut ajouter un code du genre :
Bloc de code:
if [ -f "$2" ] ; then
  echo "Overwrite $2 (y/n)";
  read -r -e overwrite
  if [ "$overwrite" != "y" ] ; then
    exit 1;
  fi;
fi

Ca marche aussi tu cartonnes trop, bravo, je vais voir demain si je peux l'améliorer encore un peu, mais ca m'a donné envie de programmer en Bash :D. J'ai un excellent professeur aussi ^^:D. Allez bonne nuit à demain ^^
 
si c'est pas malheureux...un beau titre de sujet qui pourrait attirer les badaux vers LaTeX se retrouve pollué par vous... Changer moi ce titre tout de suite avant que plus de gens ne fuient!!!