Script shell - écriture dans un fichier [Résolu/Fermé]

Signaler
-
Messages postés
8158
Date d'inscription
samedi 7 août 2004
Statut
Membre
Dernière intervention
1 septembre 2014
-
Bonjour,

Je chercher à insérer une valeur à la suite d'un fichier existant avec la commande :

"valeur" >> fichier.txt

mais en évitant que cette valeur aille directement à la ligne suivante dans le fichier.
Quelqu'un saurait si c'est possible juste avec un commande ou un script shell?

La commande doit insérer la valeur à la suite de la dernière ligne du fichier.

Merci d'avance à ceux qui me répondront.

Jérôme

6 réponses

Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 762
Salut,

Tu peux essayer par l'intermédiaire de la commande "echo" et de l'option "-n" (empêche le retour à la ligne). Ce qui donnerait :
echo -n $valeur >> fichier.txt
Par contre cette commande n'aura d'effet que lors du prochain ajout. Si comme tu le précises, la "valeur" doit s'incsrire à la suite de ton fichier, c'est la dernière ligne de ton fichier qui ne doit pas avoir de retour à la ligne.

Z'@+...che.
JP : Zen, my Nuggets ! ;-)
sh:/bin/laden: Not found !
6
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 61009 internautes nous ont dit merci ce mois-ci

Salut,

Je projéte d'installer wwwblast server sous lamppix mini. En effet, wwwblast server est un programme (utilisé en bioinformatique pour l'alignement local de séquences ADN ou acides aminés) installable sous apache dans un répertoire nommé blast mis sous le document root directory d'apache(www par exemple). Ce programme permet d'aligner des séquences "input" en exécutant des scripts cgi. Pour ceci, j'ai besoin de configurer apache pour permettre l'exécution des cgi présents sous me répertoire "blast"
et ce, en modifiant le fichier http.conf par l'ajout de quelques lignes.
Je précise que j'ai déjà effectué ce genre de manoeuvre sous Linux Mdk 9.0 et ça marche.

Le problème avec lamppix c'est qu'on ne peut modifier http.conf qu'à travers un script shell qui va écrire 6 lignes dans ce fichier pour permettre aux cgi de wwwblast server de tourner sous le réperoire blast qu'on créer.

Je précise que :
* le document root directory est : ./opt/lampp/htdocs
* le répertoire de blast est donc : ./opt/lampp/htdocs/blast
* http.conf existe sous /opt/lampp/etc/httpd.conf
* Les 6 lignes à ajouter sont :
[code]
<Directory "./opt/lampp/htdocs/blast">
Options Indexes FollowSymLinks Includes MultiViews ExecCGI
AllowOverride None
Order allow,deny
Allow from all
</Directory>
[/code]

Pour ceci, je me demande s'il faut utiliser 6 variables (une pour chaque ligne) ou il est possible de mettre les 6 lignes en une seule variable ?

sachant que je vais utiliser la commande :
[code]
echo $variable >> /opt/lampp/etc/httpd.conf
[/code]

Merci d'avance pour votre aide et j'espère que j'étais pas long dans l'explication de mon problème.

Ahmed S.
Messages postés
96
Date d'inscription
lundi 13 décembre 2004
Statut
Membre
Dernière intervention
17 janvier 2005
22
fait un "diff -uNr " fichier original fichier modifier >>fichier.patch"
puis créer un script qui patchera ton fichier original avec la commande patch

exemple "patch -p0 < fichier.patch"


Bon courage
Salut,

Ce code serait il correct ?

[code]

#!/bin/bash

#j'affecte mes lignes
$ligne1 = "<Directory "./opt/lampp/htdocs/blast"> \n"
$ligne2 = "Options Indexes FollowSymLinks Includes MultiViews ExecCGI \n"
$ligne3 = "AllowOverride None \n"
$ligne4 = "Order allow,deny \n"
$ligne5 = "Allow from all \n"
$ligne6 = </Directory> \n"
#j'ajoute mes lignes au fichier http.conf
echo $ligne1 >> /opt/lampp/etc/httpd.conf
echo $ligne2 >> /opt/lampp/etc/httpd.conf
echo $ligne3 >> /opt/lampp/etc/httpd.conf
echo $ligne4 >> /opt/lampp/etc/httpd.conf
echo $ligne5 >> /opt/lampp/etc/httpd.conf
echo $ligne6 >> /opt/lampp/etc/httpd.conf

[/code]

Merci.

Ahmed S.
Messages postés
96
Date d'inscription
lundi 13 décembre 2004
Statut
Membre
Dernière intervention
17 janvier 2005
22
c'est sur que cela va marcher enfin presque mais si tu as un prog
qui te demande de modifier d'autres endroits dans le fichier
la solution patch est beaucoup plus propre ( c'est ce qui est utilisé pour le kernel )
Alors autant le faire proprement

sinon ton script sera mieux ainsi

#!/bin/bash

#j'affecte mes lignes
ligne1 = "<Directory "./opt/lampp/htdocs/blast"> \n"
ligne2 = "Options Indexes FollowSymLinks Includes MultiViews ExecCGI \n"
ligne3 = "AllowOverride None \n"
ligne4 = "Order allow,deny \n"
ligne5 = "Allow from all \n"
ligne6 = </Directory> \n"
#j'ajoute mes lignes au fichier http.conf
echo $ligne1 >> /opt/lampp/etc/httpd.conf
echo $ligne2 >> /opt/lampp/etc/httpd.conf
echo $ligne3 >> /opt/lampp/etc/httpd.conf
echo $ligne4 >> /opt/lampp/etc/httpd.conf
echo $ligne5 >> /opt/lampp/etc/httpd.conf
echo $ligne6 >> /opt/lampp/etc/httpd.conf

Bon courage
Messages postés
8158
Date d'inscription
samedi 7 août 2004
Statut
Membre
Dernière intervention
1 septembre 2014
463
Salut Ahmed S.,

Je suis curieux de savoir si tes séquences sont en "local" ou sur des bases de données publiques.
D'autant plus que curieux que je fais un peu de "bio-info" et que je suis sous Mdk 9.0.

bob031
Salut bob,

Les séquences que j'utilise sont en fait des compilations (mélange) de séquences collectées à partir des banques publiques mais elles sont en "local" comme tu dis.

Voila, j'espère satisfaire ta curiosité !!

A mon tour, je voudrais bien savoir que veux tu dire par peu de bio info sous Mdk 9.0 c'est à dire té étudiant, prof, ingénieur, ... ?

@+

Ahmed S.
Messages postés
8158
Date d'inscription
samedi 7 août 2004
Statut
Membre
Dernière intervention
1 septembre 2014
463 > Ahmed S.
Salut Ahmed,

Disons que j'essaie de me parfaire à la bio-informatique "chez moi" sous Mdk 9.0.
Sinon mon parcours est très biologie moléculaire + petite formation en informatique ( programmation C,C++, bases de données, un peu d'administration, un peu de réseau).
Voilà pour résumé !!!!!

Bon courage,

bob