Probleme script firstline sous UNIX et vi

Résolu/Fermé
kamax54 - 30 août 2007 à 17:20
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 30 août 2007 à 23:33
Bonjour,
je suis complètement novice avec UNIX et j'aurai besoin d'aide pour réaliser un script sans utiliser ni SED ni AWK. Quelqu'un peut-il m'aider?
Voici l'énoncé :
For the following and any subsequent exercises you ARE NOT permitted to use either SED or AWK.

Script 1

Pre-requisites
Create a file with x amount of lines in it, the content of your choice.

Write a script named 'firstline' that takes two arguments. The first being a line of text, the second being your newly created file. The script should take the first argument and insert it into the very top (the first line) of the file named in your second argument.

Note! The file must retain the original name


Merci.
A voir également:

6 réponses

Chacual Messages postés 230 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 15 octobre 2007 150
30 août 2007 à 17:22
Il faut te donner tout le script ou juste t'aider :D ?
0
> càd que j'ai plusieurs script à faire, celui-ci est le premier de la
> liste...et vu que je ne trouve pas du tout de solution, je souhaiterai avoir
> tout le script afin de me rendre compte de mes erreurs. Car je ne peux plus
> me permettre de perdre du temps en réalité. Donc oui tout le script SVP.
> Merci.
0
Chacual Messages postés 230 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 15 octobre 2007 150
30 août 2007 à 17:43
Contenu du fichier monFichier.txt
toto
titi
tata

Script firstline :
# Récupération des arguments dans des variables
arg1=$1
arg2=$2
# Copie, s'il existe, du contenu du fichier passé en argument dans un fichier temp
cat $arg2 > temp.txt
# Affichage de l'argument 1 tout en redirigeant la sortie standard vers le fichier indiqué en argument 2
echo $arg1 > $arg2
# Ajout à la fin du fichier arg2 du contenu du fichier avant insertion de la première ligne :
cat temp.txt >> $arg2

Exécution du script :
sh firstline blabla monFichier.txt

Contenu du fichier :
blabla
toto
titi
tata
0
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 569
30 août 2007 à 17:49
Salut,

celui-ci est le premier de la
> liste...


En ce cas je te rappelle que tu es sur un site francophone, donc traduit d'abord l'énoncé de ton exercice avant de l’écrire.
Merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Merci beacoup Chacual pour ton aide...moi j'étais parti sur une function firstline () {en essayant de faire des couper coller..etc}.
Grâce à toi g compris qu'on ne peut pas inclure des commande de vi dans un script. Genre G ou o, O, yy...etc
C'était là-dessus que je ne pigé pas comment faire.
Encore merci pour ta rapidité.
Et désolé à llami20j si je n'ai pas traduit l'énoncé, mais c'était presque transparent lol
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 898
30 août 2007 à 23:33
Salut,

Petite variante...
[tmpfs]$ cat plop     # le fichier de départ

ligne1
ligne2
ligne3
ligne4

[tmpfs]$ cat firstline     # le script

#! /bin/bash

var=$(cat "$2")
echo "$1" > "$2"
echo "$var" >> "$2"
unset var

[tmpfs]$ ./firstline "ligne insérée" plop
[tmpfs]$ cat plop

ligne insérée
ligne1
ligne2
ligne3
ligne4

[tmpfs]$
;-))
0