#1 Le 28/05/2006, à 21:41
- John Smith
Enregistrer dans un nouveau fichier Script Linux Ubuntu
Bonjour à vous ami Linuxiens . Je me présente je suis un MacUser qui vient sur Linux afin de pouvoir l'essayer, et j'avoue que pour de l'open source, c'ets franchement excellent. Je suis en plein apprentissage du script, mais je n'arrive pas à faire un truc précis :(
J'ai un fichier texte auquel j'ai fait une modif et j'aimerais sauvegarder ce que j'ai fait dans un autre fichier mais le problème c'ets que je n'arrive pas à trouver ce qu'il faut écrire pour que je puisse l'enregistrer à l'endroit que je veux.
Je crois que c'est un truc du genre fichier de destination fichier source , un truc comme ça mais je m'en souviens plus, pourriez vous m'aider, s'il vous plait ??
Je vous remercie beaucoup,
Hors ligne
#2 Le 28/05/2006, à 21:44
- Bobbybionic
Re : Enregistrer dans un nouveau fichier Script Linux Ubuntu
j'avoue que pour de l'open source
Les vieilles idées ont la peau dure... C'est marrant personne ne dit "pour du propriétaire windows c'est franchement nul" Pardon, j'ai trollé !
PS : Je me sus arrêté à cette phrase, ça suffira pour ce soir !
Non à la vente liée. Non au monopole Windows.
Tous ensemble, refusons les logiciels préinstallés et tournons nous vers le libre.
http://bobbybionic.wordpress.com
Hors ligne
#3 Le 28/05/2006, à 21:49
- John Smith
Re : Enregistrer dans un nouveau fichier Script Linux Ubuntu
John a écrit :j'avoue que pour de l'open source
Les vieilles idées ont la peau dure... C'est marrant personne ne dit "pour du propriétaire windows c'est franchement nul" Pardon, j'ai trollé !
PS : Je me sus arrêté à cette phrase, ça suffira pour ce soir !
Je déteste Windobe aussi et toutes ces flute de zut^^ de Word, Excel, etc...c'ets pour ça que je suis sur Mac OS X. Mais là n'est pas la question, on va pas commencer à troller ce post s'il vous plait :mad: :(
Dernière modification par John Smith (Le 28/05/2006, à 22:09)
Hors ligne
#4 Le 28/05/2006, à 21:53
- Bobbybionic
Re : Enregistrer dans un nouveau fichier Script Linux Ubuntu
Ne pas oublier de rester poli ("modifier" en bas à droite de ton message)
Non à la vente liée. Non au monopole Windows.
Tous ensemble, refusons les logiciels préinstallés et tournons nous vers le libre.
http://bobbybionic.wordpress.com
Hors ligne
#5 Le 28/05/2006, à 22:02
- ZeBob
Re : Enregistrer dans un nouveau fichier Script Linux Ubuntu
J'ai un fichier texte auquel j'ai fait une modif et j'aimerais sauvegarder ce que j'ai fait dans un autre fichier mais le problème c'ets que je n'arrive pas à trouver ce qu'il faut écrire pour que je puisse l'enregistrer à l'endroit que je veux.
Je crois que c'est un truc du genre fichier de destination fichier source , un truc comme ça mais je m'en souviens plus, pourriez vous m'aider, s'il vous plait ??
Peux-tu être plus précis dans ta requête sil-te-plait.
Quel langage utilises-tu ? peux tu nous expliquer plus concrètement le souci ?
Dernière modification par ZeBob (Le 28/05/2006, à 22:03)
Hors ligne
#6 Le 28/05/2006, à 22:08
- John Smith
Re : Enregistrer dans un nouveau fichier Script Linux Ubuntu
J'ai un fichier texte auquel j'ai fait une modif et j'aimerais sauvegarder ce que j'ai fait dans un autre fichier mais le problème c'ets que je n'arrive pas à trouver ce qu'il faut écrire pour que je puisse l'enregistrer à l'endroit que je veux.
Je crois que c'est un truc du genre fichier de destination fichier source , un truc comme ça mais je m'en souviens plus, pourriez vous m'aider, s'il vous plait ??
Peux-tu être plus précis dans ta requête sil-te-plait.
Quel langage utilises-tu ? peux tu nous expliquer plus concrètement le souci ?
bah en faite j'avais essayé un script shell tout *** à l'aide du terminal, et je viens de voir qu'il existait un langage teTex ou Latex donc je sais pas trop ce que je dois utiliser lequel est le mieux , sachant que je dois également effectuer des interlignes prédéfinies dans ce fichier teexte et apres l'enregistrer sous un autre nom de destination voila , jespere avoir été clair
Désolé pour le petit mot impoli qui est sorti tout seul
EDIT by Bobbybionic : Il en restait un là aussi
Dernière modification par John Smith (Le 28/05/2006, à 22:08)
Hors ligne
#7 Le 28/05/2006, à 22:09
- Bobbybionic
Re : Enregistrer dans un nouveau fichier Script Linux Ubuntu
Désolé pour le petit mot impoli qui est sorti tout seul sad
T'es reparti ! Y'en a encore un qui t'as echappé !
Sinon... j'avoue que soit :
1/ Tu n'as pas été clair
2/ Je suis fatigué
3/ Une combinaison de 1 et de 2
Non à la vente liée. Non au monopole Windows.
Tous ensemble, refusons les logiciels préinstallés et tournons nous vers le libre.
http://bobbybionic.wordpress.com
Hors ligne
#8 Le 28/05/2006, à 22:13
- John Smith
Re : Enregistrer dans un nouveau fichier Script Linux Ubuntu
Désolé pour le petit mot impoli qui est sorti tout seul sad
T'es reparti ! Y'en a encore un qui t'as echappé !
Sinon... j'avoue que soit :
1/ Tu n'as pas été clair
2/ Je suis fatigué
3/ Une combinaison de 1 et de 2
Ok alors je reprend, je dois créer un script shell qui doit transformer un fichier texte ou je peux séparer chaque lignes avec du texte par autant de lignes vides que je veux ( interlignes) puis enregistrer mon résultat dans un nouveau fichier de destination
C'est bon ?? :D ( je dois aussi très fatiguer )
Hors ligne
#9 Le 28/05/2006, à 22:15
- Bobbybionic
Re : Enregistrer dans un nouveau fichier Script Linux Ubuntu
Ok ! Alors si je comprends bien c'est la commande
>
(oui je sais mais on n'a pas réussit à faire plus compliquer
Par exemple
echo "azerty" > azerty.txt
créé ou modifie azerty.txt en y mettant azerty.
Non à la vente liée. Non au monopole Windows.
Tous ensemble, refusons les logiciels préinstallés et tournons nous vers le libre.
http://bobbybionic.wordpress.com
Hors ligne
#10 Le 28/05/2006, à 22:18
- John Smith
Re : Enregistrer dans un nouveau fichier Script Linux Ubuntu
Ok ! Alors si je comprends bien c'est la commande
>
(oui je sais mais on n'a pas réussit à faire plus compliquer
Par exemple
echo "azerty" > azerty.txt
créé ou modifie azerty.txt en y mettant azerty.
Et comment je lui dis le nombre d'interlignes que je veux y mettre ?? car je sais qu'il a 3 paramètres je crois, le nom du fichier qu'il doit s'occuper, le nom du fichier transformer et le nombre d'interlignes
Hors ligne
#11 Le 28/05/2006, à 22:21
- ZeBob
Re : Enregistrer dans un nouveau fichier Script Linux Ubuntu
Donc t'as un fichier teste du type :
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam consequat, lorem elementum tempor mollis, mauris pede posuere diam, quis consectetuer ligula urna eu est.
Phasellus quam. Nunc et pede. Suspendisse potenti. In non tellus et orci egestas placerat. Curabitur gravida, nulla non laoreet gravida, sapien felis consequat dolor, quis congue sapien urna sit amet metus. Quisque posuere.
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Integer venenatis velit vitae diam. Maecenas vestibulum. Morbi aliquet suscipit dui. Phasellus quis eros.
Et tu souhaites augmenter l'espacement à chaque nouveau paragraphe en ajoutant des lignes ?
Hors ligne
#12 Le 28/05/2006, à 22:23
- John Smith
Re : Enregistrer dans un nouveau fichier Script Linux Ubuntu
@Zebob > Non même à chaque ligne . J'aimerais que entre chaque ligne de texte je dise avec un script interligne ( dont je ne connais pas la syntaxe :) ) , tu espaces ces 2 lignes de 3 lignes d'espaces vides par exemple :). C'est faisable au moins j'espère ??
Hors ligne
#13 Le 29/05/2006, à 07:00
- jr95
Re : Enregistrer dans un nouveau fichier Script Linux Ubuntu
C'est faisable avec une petite dizaine de lignes de shell script (estimation à la louche).
Tu devrais y arriver en utilisant une boucle "while", à l'intérieur de cette boucle les commandes "read" et "echo", et en redirigeant l'entrée standard sur ton fichier d'origine (par "<") et la sortie standard sur le fichier cible (par ">").
Tu trouveras les bonnes syntaxes dans la page de man de bash.
Hors ligne
#14 Le 29/05/2006, à 10:24
- John Smith1
Re : Enregistrer dans un nouveau fichier Script Linux Ubuntu
J'ai trouvé ça sur le net, ça pourrait marcher ??
#!/usr/bin/perl
use strict;
sub usage {
print "Usage: $0 <input file> <output file> [number of lines]\n";
print " number of lines is optional, defaulting to 2\n";
exit;
}
if (@ARGV < 2) {
usage();
}
my $zeINPUT = $ARGV[0];
my $zeOUTPUT = $ARGV[1];
my $zeNUMBER = (@ARGV == 3) ? $ARGV[2] : 2;
open (FILEIN, "< $zeINPUT") or die "unable to open $zeINPUT for reading";
open (FILEOUT, "> $zeOUTPUT") or die "unable to open $zeOUTPUT for writing";
my $i = 0;
while (<FILEIN>){
if ($i == 0){
$i++
}
else{
for (my $j = 0; $j < $zeNUMBER; $j++) {
print FILEOUT "\n";
}
}
print FILEOUT $_;
}
close FILEIN ;
close FILEOUT ;
#15 Le 29/05/2006, à 11:19
- jr95
Re : Enregistrer dans un nouveau fichier Script Linux Ubuntu
Oui, ça devrait fonctionner.
En bash, l'équivalent ressemble à :
#!/bin/bash
if [ $# -lt 2 ]
then
echo "Usage : $0 <input file> <output file> [number of lines]"
exit 1
fi
zeINPUT=$1
zeOUPUT=$2
zeNUMBER=${3:-2}
while read line
do
echo $line
for (( i=1 ; i <= $zeNUMBER ; i++ ))
do
echo "\n"
done
done < $zeINPUT >$zeOUTPUT
(aux erreurs de syntaxes près)
Hors ligne
#16 Le 29/05/2006, à 11:33
- John Smith
Re : Enregistrer dans un nouveau fichier Script Linux Ubuntu
Oui, ça devrait fonctionner.
En bash, l'équivalent ressemble à :#!/bin/bash if [ $# -lt 2 ] then echo "Usage : $0 <input file> <output file> [number of lines]" exit 1 fi zeINPUT=$1 zeOUPUT=$2 zeNUMBER=${3:-2} while read line do echo $line for (( i=1 ; i <= $zeNUMBER ; i++ )) do echo "\n" done done < $zeINPUT >$zeOUTPUT
(aux erreurs de syntaxes près)
Oki merci beaucoup je vais essayer ce soir chez moi, car je suis sur Windows là :mad:. Mais si ça marche c'est énorme . Merci d'avance déjà ^^.
Mais j'ai juste 2 petites questions de débutants. C'est quoi la différence entre Bash et Perl ( ou alors j'ai rien compris :D)
et ca veut dire quoi le exit 1
fi
??
Merci ^^
Hors ligne
#17 Le 29/05/2006, à 12:25
- jr95
Re : Enregistrer dans un nouveau fichier Script Linux Ubuntu
Mais j'ai juste 2 petites questions de débutants. C'est quoi la différence entre Bash et Perl ( ou alors j'ai rien compris :D)
Bash et perl sont 2 langages interprétés avec des syntaxes différentes.
perl a beaucoup plus de fonctionnalités et permet de faire plus facilement que bash des scripts compliqués.
Tu pourras trouver une introduction à bash sur la page du wiki : http://doc.ubuntu-fr.org/console/script_shell
Pour perl, le site officiel (en anglais) est : http://www.perl.org
Google et d'autres sites pourront te permettre de te faire une idée plus précise. Par exemple, http://www.ubuntu-fr.org/,
http://lea-linux.org/, http://www.trustonme.net et bien d'autres encore (je suis au boulot et ce sont les sites que j'ai en tête en ce moment)
et ca veut dire quoi le exit 1
fi
Le "fi" permet de marquer la fin du bloc commençant par "if"
Le "exit 1" permet de sortir du script avec un code retour égal à 1. Ce code retour peut éventuellement être testé par l'appelant du script.
Un code retour égal à 0 signifie "pas d'erreur", tandis qu'un code retour non nul signifie "erreur".
Hors ligne
#18 Le 29/05/2006, à 12:27
- SamheG
Re : Enregistrer dans un nouveau fichier Script Linux Ubuntu
Valeur retournée par un shell-script à la fin de son execution
C'est la valeur retournée par la dernière commande exécutée dans le script. Par convention, une valeur de retour égale à 0 signifie que le script s'est bien déroulé. Inversement, toute autre valeur indique une erreur. De plus, on peut fixer cette valeur par la commande :
exit n
Dans ce cas, c'est n qui est retourné.
Comme pour toute commande, la valeur de retour d'un script peut être récupérée dans la variable $?.
Edit : grilled
Dernière modification par SamheG (Le 29/05/2006, à 12:27)
Hors ligne
#19 Le 29/05/2006, à 12:30
- SamheG
Re : Enregistrer dans un nouveau fichier Script Linux Ubuntu
Bash est un logiciel libre publié sous licence GPL. Il est l'interprète par défaut sur de nombreux Unix libres, notamment sur les systèmes GNU/Linux. C'est aussi le shell par défaut de Mac OS X et il a été porté sous Windows par le projet Cygwin.
Donc en tant que MacUser tu devrais connaître !
Hors ligne
#20 Le 29/05/2006, à 13:10
- John Smith
Re : Enregistrer dans un nouveau fichier Script Linux Ubuntu
Oki merci bien pour toutes ces infos, et comme je fais ça à l'aide du terminal de MAC OS X ( donc linux ^^ ), je vais utiliser Bash .;);)
Mini question éclair , c'est quoi qu'est utiliser sur le terminal de Mac OS X donc Linux? :)
Dernière modification par John Smith (Le 29/05/2006, à 13:18)
Hors ligne
#21 Le 29/05/2006, à 23:19
- John Smith
Re : Enregistrer dans un nouveau fichier Script Linux Ubuntu
Je suis de retour chez moi j'ai essayé mais je comprend pas là , je dois avoir louper un truc, j'ai écris ca ( en bash ) sur mon terminal, il me met Commande éxécuté mais je trouve le fichier toto2.rtf nul part ?? Pourtant j 'ai bien créé toto.rtf sur le bureau et j 'ai mis plein de lignes pleines de texte. J'avoue que je comprend pas là ?_? . Quelqu'un pour éclairer ma lanterne ? S'il vous plait
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
echo "\n"
done
done < $zeINPUT >$zeOUTPUT
Hors ligne
#22 Le 30/05/2006, à 09:10
- jr95
Re : Enregistrer dans un nouveau fichier Script Linux Ubuntu
Ce qu'il faut faire, c'est mettre le code dans un fichier en utilisant un éditeur (par exemple Menu Applications -> Accessoires -> Editeur de texte). Tu peux choisir ce que tu veux comme nom pour le fichier, mais une habitude très répandue consiste à mettre ".sh" comme suffixe pour un script shell.
Ensuite, il faut donner le droit d'exécution au script :
chmod +x mon_script.sh
Pour l'utiliser (dans un terminal) :
mon_script.sh toto.rtf toto2.rtf 4
Cela créera le fichier toto2.rtf à partir du fichier toto.rtf avec 4 interlignes rajoutées après chaque ligne d'origine.
Hors ligne
#23 Le 30/05/2006, à 10:11
- cep_
Re : Enregistrer dans un nouveau fichier Script Linux Ubuntu
Si tu le gardes sur ce principe tu pourrais avoir :
#!/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
Remplacer echo "\n" par printf " %s\n" pour ne pas avoir les caractères \n affichés à la sortie.
Voir aussi done < $1 >$2 à la place de $zeINPUT >$zeOUTPUT
Cordialement.
cep
#24 Le 30/05/2006, à 13:47
- John Smith
Re : Enregistrer dans un nouveau fichier Script Linux Ubuntu
Oki merci bien encore vous deux , j'essaierais ca encore ce soir ^^ , je vous tiens en stand by
Hors ligne
#25 Le 30/05/2006, à 22:02
- John Smith
Re : Enregistrer dans un nouveau fichier Script Linux Ubuntu
Etes-vous là , cela m'aiderait bien . J'ai fait tout ce que vous m'avez dit , j 'ai mis donc apres toto.sh toto.rtf toto2.rtf 4 mais lorsque je valide il me met toto.sh : command not found je comprend pas je pensais que ca allait marcher :S :(:(:(:(:(
Hors ligne