Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/05/2006, à 22:41

John Smith

Enregistrer dans un nouveau fichier Script Linux Ubuntu

Bonjour à vous ami Linuxiens big_smile. 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 sad:(

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,
wink

Hors ligne

#2 Le 28/05/2006, à 22:44

Bobbybionic

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" yikes Pardon, j'ai trollé !

PS : Je me sus arrêté à cette phrase, ça suffira pour ce soir ! smile


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, à 22:49

John Smith

Re : Enregistrer dans un nouveau fichier Script Linux Ubuntu

Bobbybionic a écrit :
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" yikes Pardon, j'ai trollé !

PS : Je me sus arrêté à cette phrase, ça suffira pour ce soir ! smile

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:mad: sad:(

Dernière modification par John Smith (Le 28/05/2006, à 23:09)

Hors ligne

#4 Le 28/05/2006, à 22: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, à 23: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, à 23:03)

Hors ligne

#6 Le 28/05/2006, à 23:08

John Smith

Re : Enregistrer dans un nouveau fichier Script Linux Ubuntu

ZeBob a écrit :

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 smile

Désolé pour le petit mot impoli qui est sorti tout seul sad

EDIT by Bobbybionic : Il en restait un là aussi

Dernière modification par John Smith (Le 28/05/2006, à 23:08)

Hors ligne

#7 Le 28/05/2006, à 23: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

smile


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, à 23:13

John Smith

Re : Enregistrer dans un nouveau fichier Script Linux Ubuntu

Bobbybionic a écrit :

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

smile

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 ?? big_smile:D  ( je dois aussi très fatiguer tongue)

Hors ligne

#9 Le 28/05/2006, à 23: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 lol

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, à 23:18

John Smith

Re : Enregistrer dans un nouveau fichier Script Linux Ubuntu

Bobbybionic a écrit :

Ok ! Alors si je comprends bien c'est la commande

>

(oui je sais mais on n'a pas réussit à faire plus compliquer lol

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, à 23: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, à 23: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 smile:) ) , tu espaces ces 2 lignes de 3 lignes d'espaces vides par exemple smile:). C'est faisable au moins j'espère ?? sad

Hors ligne

#13 Le 29/05/2006, à 08: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, à 11: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, à 12: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, à 12:33

John Smith

Re : Enregistrer dans un nouveau fichier Script Linux Ubuntu

jr95 a écrit :

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à sad mad:mad:. Mais si ça marche c'est énorme big_smile big_smile. 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 big_smile:D)

et ca veut dire quoi le exit 1
fi

??

Merci ^^

Hors ligne

#17 Le 29/05/2006, à 13:25

jr95

Re : Enregistrer dans un nouveau fichier Script Linux Ubuntu

John Smith a écrit :

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 big_smile: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)

John Smith a écrit :

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, à 13: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, à 13:27)

Hors ligne

#19 Le 29/05/2006, à 13: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 ! wink

Hors ligne

#20 Le 29/05/2006, à 14: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 smile.;);)


Mini question éclair , c'est quoi qu'est utiliser sur le terminal de Mac OS X donc Linux? big_smile:)

Dernière modification par John Smith (Le 29/05/2006, à 14:18)

Hors ligne

#21 Le 30/05/2006, à 00: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 sad

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, à 10: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, à 11: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, à 14:47

John Smith

Re : Enregistrer dans un nouveau fichier Script Linux Ubuntu

Oki merci bien encore vous deux big_smile , j'essaierais ca encore ce soir ^^ , je vous tiens en stand by big_smile

Hors ligne

#25 Le 30/05/2006, à 23:02

John Smith

Re : Enregistrer dans un nouveau fichier Script Linux Ubuntu

Etes-vous là , cela m'aiderait bien sad. 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 sad:(:(:(:(:(

Hors ligne