Petit script sur un texte
Fermé
keta
-
19 mai 2007 à 16:33
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 24 mai 2007 à 14:17
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 24 mai 2007 à 14:17
A voir également:
- Petit script sur un texte
- Script vidéo youtube - Guide
- Mettre un texte en majuscule - Guide
- Excel cellule couleur si condition texte - Guide
- Comment retranscrire un entretien audio en texte - Guide
- Encadrer un texte sur word - Guide
8 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
19 mai 2007 à 16:45
19 mai 2007 à 16:45
Salut,
Faudrait déjà lui indiquer le fichier d'entrée non ? Du style :
Montres-nous à quoi ressemble ton fichier d'entrée et à quoi doit ressembler ton fichier de sortie ($2).
;-))
Faudrait déjà lui indiquer le fichier d'entrée non ? Du style :
head -$1 fichier_entréee >> $2Et puis à quoi corresponde les "ligne 1" "et ligne 2" ?
Montres-nous à quoi ressemble ton fichier d'entrée et à quoi doit ressembler ton fichier de sortie ($2).
;-))
oui c'est le problème ; à la base j'ai un fichier qui comprend
x lignes
ligne 1
ligne 2
ligne ..n
et avec un nouveau script j'ai mes 2 arguments ; le premier place la nouvelle ligne en haut du nouveau fichier (argument 2)
x lignes
ligne 1
ligne 2
ligne ..n
et avec un nouveau script j'ai mes 2 arguments ; le premier place la nouvelle ligne en haut du nouveau fichier (argument 2)
pocondeta_13
Messages postés
7
Date d'inscription
samedi 19 mai 2007
Statut
Membre
Dernière intervention
20 mai 2007
2
19 mai 2007 à 20:11
19 mai 2007 à 20:11
Bonsoir,
si j'ai bien suvi tu veux un script tel que:
toto.sh "ma ligne de texte" monfichier.qqc
et tu dois retrouver en ligne 1 de monfichier.qqc la phrase "ma ligne de texte" puis des phrases qui viennent de ton script shell?
si c'est oui, voilà un script shell qui fait celà:
les {} c'est pour protéger les variables, c'est à ma connaissance une bonne habitude à prendre pour eviter des effets de bords ...
si j'ai bien suvi tu veux un script tel que:
toto.sh "ma ligne de texte" monfichier.qqc
et tu dois retrouver en ligne 1 de monfichier.qqc la phrase "ma ligne de texte" puis des phrases qui viennent de ton script shell?
si c'est oui, voilà un script shell qui fait celà:
les {} c'est pour protéger les variables, c'est à ma connaissance une bonne habitude à prendre pour eviter des effets de bords ...
#!/bin/bash echo ${1} > ${2} echo "phrase 2" >> ${2} echo "phrase 3" >> ${2} echo "phrase 4" >> ${2} echo "..." >> ${2} echo "phrase n" >> ${2}
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
19 mai 2007 à 20:18
19 mai 2007 à 20:18
Salut,
si j'ai bien suivi tu veux un script tel que...
Il est bien là le problème, car moi j'ai pas du tout compris ça et c'est bien pourquoi je demandais des exemples précis, comme un bout du fichier d'entrée, un énoncé plus clair de ce que veut notre ami et un bout de son fichier de sortie tel qu'il doit être ...
;-))
si j'ai bien suivi tu veux un script tel que...
Il est bien là le problème, car moi j'ai pas du tout compris ça et c'est bien pourquoi je demandais des exemples précis, comme un bout du fichier d'entrée, un énoncé plus clair de ce que veut notre ami et un bout de son fichier de sortie tel qu'il doit être ...
;-))
pocondeta_13
Messages postés
7
Date d'inscription
samedi 19 mai 2007
Statut
Membre
Dernière intervention
20 mai 2007
2
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
19 mai 2007 à 20:25
19 mai 2007 à 20:25
moui je sais, j'ai relu bien 3 ou 4 fois en decortiquant.
J'ai proposé une solution par rapport à ce que j'ai compris... c'est pas toujours facile d'expliquer correctement un problème et ces objectifs quand on découvre un nouvelle univers ... (moi c'est les vlans en ce moment .... )
Maintenant si ce n'est pas ça, on fera un V1.1 :)
J'ai proposé une solution par rapport à ce que j'ai compris... c'est pas toujours facile d'expliquer correctement un problème et ces objectifs quand on découvre un nouvelle univers ... (moi c'est les vlans en ce moment .... )
Maintenant si ce n'est pas ça, on fera un V1.1 :)
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
19 mai 2007 à 20:29
19 mai 2007 à 20:29
moui je sais, j'ai relu bien 3 ou 4 fois en decortiquant.
Ben je dois en être à 10 ou 15 fois ;-((
J'ai proposé une solution par rapport à ce que j'ai compris...
Et je t'en remercie d'ailleurs
c'est pas toujours facile d'expliquer correctement un problème et ces objectifs quand on découvre un nouvelle univers ... (moi c'est les vlans en ce moment .... )
D'où la demande de copier/coller des fichiers (entrée/sortie)
Maintenant si ce n'est pas ça, on fera un V1.1 :)
;-DDD
Ben je dois en être à 10 ou 15 fois ;-((
J'ai proposé une solution par rapport à ce que j'ai compris...
Et je t'en remercie d'ailleurs
c'est pas toujours facile d'expliquer correctement un problème et ces objectifs quand on découvre un nouvelle univers ... (moi c'est les vlans en ce moment .... )
D'où la demande de copier/coller des fichiers (entrée/sortie)
Maintenant si ce n'est pas ça, on fera un V1.1 :)
;-DDD
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
3 février 2022
426
19 mai 2007 à 20:47
19 mai 2007 à 20:47
Il est clair que l'énoncé ne l'est pas du tout :D
Il faudrait soit l'énoncé exact (mot pour mot) sois des exemple concrets...
Moi je le comprend comme cela (enfin ça me parait être un exercice intéressant...)
Ajouter l'argument 1 en début du fichier passé en argument 2...
Ce qui pourrait se résoudre avec le script suivant:
++
Il faudrait soit l'énoncé exact (mot pour mot) sois des exemple concrets...
Moi je le comprend comme cela (enfin ça me parait être un exercice intéressant...)
Ajouter l'argument 1 en début du fichier passé en argument 2...
Ce qui pourrait se résoudre avec le script suivant:
#/bin/sh LINE=$1 FILE=$2 sed -i -e "1i\ $LINE " $FILEExemple:
PBG4:~/Work/temp adrien$ cat test.txt ligne 1 ligne 2 ligne 3 ligne 4 ... ligne n PBG4:~/Work/temp adrien$ ./ajoutL1.sh "ligne 0" test.txt PBG4:~/Work/temp adrien$ cat test.txt ligne 0 ligne 1 ligne 2 ligne 3 ligne 4 ... ligne n PBG4:~/Work/temp adrien$Si c'est l'effet attendu, on peut te donner des détails sur la commande utilisée :)
++
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bonsoir , désolé pour mon explication et merci pour vos réponses ;
oui en entrée je veux ceci avec les 2 arguments :
monscript.sh (ligne à placer en haut du nouveau fichier)( nouveau fichier)
monscript contient les lignes
ligne 1
ligne2
etc...
et en sortie je veux donc : cat nouveaufichier
ligne à placer en haut du nouveau fichier
ligne1
ligne2
etc..
j'ai un problème avec la commande head .
oui en entrée je veux ceci avec les 2 arguments :
monscript.sh (ligne à placer en haut du nouveau fichier)( nouveau fichier)
monscript contient les lignes
ligne 1
ligne2
etc...
et en sortie je veux donc : cat nouveaufichier
ligne à placer en haut du nouveau fichier
ligne1
ligne2
etc..
j'ai un problème avec la commande head .
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
3 février 2022
426
19 mai 2007 à 22:43
19 mai 2007 à 22:43
Bonche, du coup, je ne trouve pas ça logique comme exercice mais admettons.
Est-ce que les réponses de pocondeta_13 en 3 ou lami20j en 9 résolvent ton problème, oubien est-ce que tu dois avoir en resultat l'argument 1 suivi du contenu du script, c'est a dire:
Est-ce que les réponses de pocondeta_13 en 3 ou lami20j en 9 résolvent ton problème, oubien est-ce que tu dois avoir en resultat l'argument 1 suivi du contenu du script, c'est a dire:
paramètre_1 ligne 1 ligne 2 ...ou
paramètre_1 echo paramètre_1 > paramètre_2 echo ligne 1 >> paramètre_2 echo ligne 2 >> paramètre_2 ...?
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
19 mai 2007 à 21:51
19 mai 2007 à 21:51
Salut,
Moi je comprends qu'il s'agit de la création d'un nouveau fichier dont le 1er argument sera la 1ère ligne et le reste des lignes sont codées en dur dans le script
Moi je comprends qu'il s'agit de la création d'un nouveau fichier dont le 1er argument sera la 1ère ligne et le reste des lignes sont codées en dur dans le script
$ cat ccm.sh #!/bin/bash echo $1 >> $2 echo ligne1 >> $2 echo ligne2 >> $2 $ sh ccm.sh "ligne à placer en haut du nouveau fichier" resultat.txt $ cat resultat.txt ligne à placer en haut du nouveau fichier ligne1 ligne2
désolé de m être mal expliqué , on doit utiliser la commande head pour cet exo : on a un fichier (newfile) qui contient x lignes
line1
line2
line3
on doit écrire un script qui prend comme premier argument la nouvelle ligne à mettre en haut du fichier crée ci dessus (newfile), newfile sera le 2 èm argument qui affichera après lexecution du script :
nouvelle ligne
line1
line2
line3
jai essayé comme ceci mais jai une erreur head
head -$1 newfile >>$2
line1
line2
line3
on doit écrire un script qui prend comme premier argument la nouvelle ligne à mettre en haut du fichier crée ci dessus (newfile), newfile sera le 2 èm argument qui affichera après lexecution du script :
nouvelle ligne
line1
line2
line3
jai essayé comme ceci mais jai une erreur head
head -$1 newfile >>$2
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
24 mai 2007 à 14:17
24 mai 2007 à 14:17
Salut,
Je ne vois pas pourquoi tu t'obstines avec la commande "head", qui ne sert qu'à afficher "n" ligne(s) du début d'un fichier.
Tiens voilà une autre façon de faire :
;-))
Je ne vois pas pourquoi tu t'obstines avec la commande "head", qui ne sert qu'à afficher "n" ligne(s) du début d'un fichier.
Tiens voilà une autre façon de faire :
#! /bin/bash if [ "$#" -gt 2 ]; then echo -e "trop de paramètres ! " echo -e "Usage :\t$0 \"phrase entre guillemets\" fichier" exit 3 fi fichier=$(cat $2) echo "$1" > "$2" echo "$fichier" >> "$2" cat "$2" exitLa meilleure solution restant quand même celle d'asevere (post #7) utilisant la commande "sed" qui se prète tout a fait à ce genre d'exercice.
;-))