Rechercher : dans
Par :

Probleme script firstline sous UNIX et vi

Dernière réponse le 30 aoû 2007 à 23:33:16 kamax54, le 30 aoû 2007 à 17:20:36 
 Signaler ce message aux modérateurs

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.

Configuration: Windows XP
Firefox 2.0.0.6

Meilleures réponses pour « probleme script firstline sous UNIX et vi » dans :
Exécuter un script shell VoirExécution d'un script Pour pouvoir exécuter un script ou un programme en ligne de commande il y a plusieurs possibilités : 1. Le chemin absolu 2. Le chemin relatif 3. Modifier la variable PATH Note: Le Sha...
Sed - Conversion retours chariots DOS (CRLF) / UNIX (LF) VoirConversion format de fichier DOS UNIX / UNIX DOS Préambule Ce qu'il faut savoir Conversion DOS vers UNIX Conversion UNIX vers DOS Préambule Il existe déjà des utilitaires (dos2unix et unix2dos) qui s'acquittent très bien ce...
Linux - L'éditeur Vi VoirIntroduction à Vi Vi est un des éditeurs de texte les plus populaires sous les systèmes de type Unix (avec Emacs et pico) malgré son ergonomie très limitée. Sous Linux il existe une version libre de Vi appelée Vim (Vi Improved). Vi (prononcez...
Linux - L'éditeur Vi VoirIntroduction à Vi Vi est un des éditeurs de texte les plus populaires sous Linux (avec Emacs et pico) malgré son ergonomie très limitée. En effet, Vi (prononcez Vihaille) est un éditeur entièrement en mode texte, ce qui signifie que chacune des...

1

Chacual, le 30 aoû 2007 à 17:22:55

Il faut te donner tout le script ou juste t'aider :D ?

Répondre à Chacual

2

kamax54, le 30 aoû 2007 à 17:29:38

> 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.

Configuration: Windows XP
Firefox 2.0.0.6

Répondre à kamax54

3

Chacual, le 30 aoû 2007 à 17:43:15

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

Répondre à Chacual

4

lami20j, le 30 aoû 2007 à 17:49:30

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.
lami20j

Configuration: Windows XP
Internet Explorer 6.0

Répondre à lami20j

5

kamax54, le 30 aoû 2007 à 18:30:53

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

Configuration: Windows XP
Firefox 2.0.0.6

Répondre à kamax54

6

 jipicy, le 30 aoû 2007 à 23:33:16

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]$
;-)) Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy