rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Editer fichier texte par un script

guronsan, le jeudi 11 septembre 2003 à 15:02:49
salut,
Est-ce que quelqu'un sait comment editer un fichier texte dans un script.
En fait je cherche un moyen de rajouter une ligne à un fichier texte par un script.
meri d'avance.
Répondre à guronsan  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
sebsauvage, le jeudi 11 septembre 2003 à 15:53:02
echo mon texte à ajouter >> monfichier.txt


echo "un 
texte
sur 
plusieurs
lignes" >> monfichier.txt
Répondre à sebsauvage

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
guronsan, le jeudi 11 septembre 2003 à 16:44:32
merci
Répondre à guronsan

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
francoispgp, le jeudi 11 septembre 2003 à 16:44:59
solutions :
-redirections (exemple de sebsauvage)
-sed
-awk
-perl
-vi (evite d'appeler un langage comme sed awk perl)
Répondre à francoispgp

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Le Squale, le lundi 17 novembre 2003 à 11:37:38
Bonjour,

J'ai un peu le même problème d'éditoin de fichier via un script.

En ce qui me concerne, je veux modifier tous les ";" (point virgules) de mon fichier par des "," (virgules).

Si quelqu'un pouvait m'aider ce serait super. SVP

Merci d'avance
Répondre à Le Squale

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
rosen37, le lundi 17 novembre 2003 à 11:51:44
Lu,

je suis pas une bete de developpement linux mais il me semble qu il te faut utiliser la commande sed qui permet de faire ca.
Essaye de regarder ss google si sed permet le remplacement de caractere.

Bye
Répondre à rosen37

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
coppernix, le lundi 17 novembre 2003 à 15:00:22
Bonjour,

(
echo ":1,\$s/;/,/g"
echo "ZZ"
) |vi fichier >/dev/null 2>&1


L'expérience est une lanterne attachée dans notre dos,
qui n'éclaire que le chemin parcouru. Confucius
Répondre à coppernix

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jisisv, le lundi 17 novembre 2003 à 17:15:08
Hello,
très amusant d'utiliser vi
Il y a des petits malins qui ont programmé les tours de Hanoï avec vi.
CEPENDANT,
c'est traire une puce avec des gants de boxe.
sed -e 's/;/,/g' < monfic > monfic.$$
mv monfic.$$ monfic

devrait suffire.
Evidemment si il faut effectuer des manipulations complexes mais
pas vraiment du développement vive le perl.
<troll>
c'est d'ailleurs sa seule utilité ..., pour le web Python et
PHP sont tout de même plus lisibles
</troll>

Johan
The software said "Requires Windows98, Win2000, or better,
So I installed Unix.
Répondre à jisisv

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
coppernix, le mardi 18 novembre 2003 à 09:12:13
L'intérêt de vi est de ne pas avoir à passer par un fichier intermédiaire, ce qui provoque parfois la perte de caractères spéciaux.



L'expérience est une lanterne attachée dans notre dos,
qui n'éclaire que le chemin parcouru. Confucius
Répondre à coppernix

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
skarsnick, le mercredi 4 avril 2007 à 10:55:26
Bonjour!
Une question du même type, mais j'aimerai comprendre ce que je fais :p

Comment remplacer
"bonjour"
par
"#bonjour"

sachant que je n'ai qu'un seul "bonjour" dans mon texte.
J'avoue qu'avec les ,\$s/;/,/ et les autres, je suis perdu.
Merci
Répondre à skarsnick

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
skarsnick, le mercredi 4 avril 2007 à 11:39:02
re,

sed -e 's/bonjour/#bonjour/g' < monfic > monfic.$$
mv monfic.$$ monfic


marche bien :)
Mais si quelqu'un veux bien m'expliquer pourquoi il y a s/ /g ca m'arranngerai merci :)
Répondre à skarsnick

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jipicy, le mercredi 4 avril 2007 à 11:47:57
Salut,

Regarde dans la FAQ : Sed - Substitution
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.
Répondre à jipicy

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
skarsnick, le mercredi 4 avril 2007 à 12:15:31
j'ai regardé un peu mais j'ai une erreur:

if grep -q "test" /tata/fichier;
then
        if grep -q "#coucou\ "toi\"" /tata/fichier;
        then sed -e 's/#coucou \"toi\"/coucou \"toi\"/g' </tata/fichier> /tata/fichier.$$
...



cela me retourne :
sed -e expression #1, char 64 :unknown option to 's'
ai je bien fait de mettre \ devant mon " ?
Répondre à skarsnick

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jipicy, le mercredi 4 avril 2007 à 13:58:34
Re-

Si tu veux juste enlever le dièse (#) de devant "coucou", un simple :
then sed -e 's/#coucou/coucou/g' </tata/fichier> /tata/fichier.$$
suffit.

Si tu as la version "Gnu-sed" (3.2 et +) d'installée sur ton système, au lieu de passer par un fichier temporaire, tu peux éditer ton fichier directement avec le switch "-i" (in place) :
sed -i.bak 's/#coucou/coucou/g'  /tata/fichier
le ".bak" créant automatiquement une copie du fichier original (fichier.bak).
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.
Répondre à jipicy

14


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
skarsnick, le mercredi 4 avril 2007 à 14:14:22
en faite j'ai fait une simple faute de frappe, j'ai trouvé et corrigé mon erreur.


pour le coucou, le pb c'est que j'avais :
coucou "toi"
coucou "moi"

etc...
d'où l'utilisation de la chaine en entier
Merci de ton aide :)
Répondre à skarsnick

15


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jipicy, le mercredi 4 avril 2007 à 18:30:36
 sed '/toi/s/#coucou/coucou/'
Le remplacement ne sera effectué que si la chaine "toi" est trouvée.

;-)) Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.
Répondre à jipicy

16


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
woolf73, le lundi 22 octobre 2007 à 15:44:38
Bonjour, je souhaite, par des commandes script unix:
compter tout d'abord le nombre de lignes du fichier texte nommée "entree".
puis modifier le 2e élément d'un fichier texte nommée "paramètre" pour le remplacer par le nombre trouvé.
Est-ce que qqun pourrai m'aider plzzzzzz

ps: le fichier paramètre se présente de la manière suivante:
4 5215 3 0.006 3 776 3 456 3 954
ici, remplacer 5215 par le nouveau nombre
Répondre à woolf73

17


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jipicy, le lundi 22 octobre 2007 à 16:03:24
Salut,
[tmpfs]$ cat entree

Ligne n° 1
Ligne n° 2
Ligne n° 3
Ligne n° 4
Ligne n° 5
Ligne n° 6
Ligne n° 7
Ligne n° 8
Ligne n° 9
Ligne n° 10

[tmpfs]$ cat parametre

4 5215 3 0.006 3 776 3 456 3 954

[tmpfs]$ sed 's/.[^ ]*/ '"$(wc -l < entree)"'/2' parametre

4 10 3 0.006 3 776 3 456 3 954

[tmpfs]$
Si tu as une version de "GNU sed", rajoute l'option "-i.BAK" pour modifier le fichier source et faire une copie de sauvegarde par la même occasion :
sed -i.BAK 's/.[^ ]*/ '"$(wc -l < entree)"'/2' parametre
;-))

Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.
Répondre à jipicy

18


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
woolf73, le lundi 22 octobre 2007 à 16:43:24
Un grand merci jipsy, je suis etonné de voir la rapidité avec laquelle tu m'a répondu...
Cependant la ligne ne marche pas exactement comme prévu et lorsque je lance le script avec la ligne de commande:
sed 's/.[^ ]*/ '"$(wc -l < entree)"'/2' parametre
la console m'affiche:
4 $(wc -l < entree) 3 0.006 3 776 3 456 3 954
et le fichier texte paramètre n'est pas modifié
alors qu'il devrait ressembler à ça:
4 476659 3 0.006 3 776 3 456 3 954
car il ya 476659 lignes dans mon fichier texte entree
bizarre ?!?
je t'avoue ke je suis une merde en script unix, je ne vois pas d'ou le probleme viens alors ke ca doit etre tout simple, tu a le droit de te moquer de moi....
Répondre à woolf73

19


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jipicy, le lundi 22 octobre 2007 à 16:50:32
Bon on va procéder autrement.
var=$(wc -l < entree)
sed -i.bak "s/.[^ ]*/ $var/2" parametre
Ce qui donne :
[tmpfs]$ var=$(wc -l < entree)

[tmpfs]$ echo $var

10

[tmpfs]$ cat parametre

4 5215 3 0.006 3 776 3 456 3 954

[tmpfs]$ sed -i.BAK "s/.[^ ]*/ $var/2" parametre

[tmpfs]$ cat parametre

4 10 3 0.006 3 776 3 456 3 954
[tmpfs]$
;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.
Répondre à jipicy

20


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
woolf73, le lundi 22 octobre 2007 à 17:02:23
console:
unknown flag i



"parametre" pas modifié !? arf...
Répondre à woolf73

21


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jipicy, le lundi 22 octobre 2007 à 17:07:19
Quelle version de sed (sed --version) ? Il faut le version Gnu sed (4.0.5 et supérieure)

Sinon passe par un fichier temporaire :
var=$(wc -l < entree)
sed "s/.[^ ]*/ $var/2" parametre > fich.tmp
mv -f fich.tmp parametre
;-))

Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.
Répondre à jipicy

22


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
woolf73, le lundi 22 octobre 2007 à 17:14:30
oui le fichier paramètre est modifié, mais de la manière suivante:
4 $(wc -l < entree) 3 0.006 3 776 3 456 3 954
pkoi $(wc -l < entree) ne donne pas le nombre de ligne de entree?!?
Répondre à woolf73

23


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jipicy, le lundi 22 octobre 2007 à 17:24:11
Je me répète :
Quelle version de sed (sed --version) ?
Quel shell ? Quelle version ?

Ensuite que te renvoie :
var=$(wc -l < entree)
echo $var

Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.
Répondre à jipicy
Editeur de texte sous Ubuntu Hardy (Résolu)Bonjour, Voila après une nouvelle installation toute fraiche de Hardy, lorsque je désire editer un texte au lieu de l'ouvrir normalement comme ce fut le cas auparavant, celui-ci m'ouvre une fenetre et me propose des choix tels que: = >... www.commentcamarche.net/forum/affich-7853174-editeur-de-texte-sous-ubuntu-hardy
[MS-Dos] Ecrire dans un fichier texte en batchPour écrire dans un fichier texte, il suffit d'utiliser une redirection ">" :echo texte_à_ecrire > fichier_de_sortie.txtPour écrire à la fin d'un texte existant (concaténation) :echo "ecriture a la fin du fichier ">> fichier_de_sortie.txt www.commentcamarche.net/faq/sujet-2695-ms-dos-ecrire-dans-un-fichier-texte-en-batch
Les éditeurs de texte formaté - Rich text editorsLes Rich-Text Editors, ou éditeurs de texte formaté, sont des outils que l'on utilise au travers de son navigateur afin de faciliter la mise en forme du texte. On les trouve sur des services en ligne, comme notre boite email ou comme par exemple sur... www.commentcamarche.net/faq/sujet-10000-les-editeurs-de-texte-formate-rich-text-editors
[RegExp] Récupérer une adresse IPFinalité Mise en œuvre Explications Interprétation du motif Récupérer une adresse IP Finalité Pour récupérer une IP dans un fichier texte, fichiers journaux, pages web, etc. Mise en œuvre L'expression régulière suivante combinée à la... www.commentcamarche.net/faq/sujet-911-regexp-recuperer-une-adresse-ip
Xubuntu: Modifier le menu "Applications"Modifier le menu application de Xubuntu Contrairement à Ubuntu, Xubuntu ne possède pas d'éditeur de menu. Le seul moyen d'éditer le menu est d'aller modifier des fichiers texte à la main. Pour cela, ouvrez un terminal (n'utilisez pas le... www.commentcamarche.net/faq/sujet-6477-xubuntu-modifier-le-menu-applications
Lire un fichier texte en java (Résolu)Salut ! je voudrai lire un fichier texte ligne par ligne en java mais je ne sais pas comment faire. Merci d'avance Nathalie www.commentcamarche.net/forum/affich-590149-lire-un-fichier-texte-en-java
Importer un fichier texte sous ACCESS ! (Résolu)Salut tout le monde, j'aurais besoin de vous pour une petite question en fait. J esuis en train de faire une interface access pour l'utilisateur et il doit pouvoir imlpémenter la BD à l'aide d'un fichier texte. juskici tt va bien !... www.commentcamarche.net/forum/affich-680848-importer-un-fichier-texte-sous-access
[PHP] Lire/écrire un fichier texte par ligne (Résolu)Bonjour, Le sujet a déjà été abordé sur quelques forums, mais je n'ai trouvé aucune réponse satisfaisante. Je souhaite lire un fichier texte par ligne. J'ai trouvé des histoires de fopen avec le 256e bit (comme quoi chaque 255 bit on... www.commentcamarche.net/forum/affich-4520399-php-lire-ecrire-un-fichier-texte-par-ligne
Télécharger TextWranglerTextWrangler est un éditeur de texte évolué. Il propose de nombreuses fonctionnalités : recherche/remplacement simple ou sur plusieurs fichiers utilisation d'expressions rationnelles (regexp) comparaisons de fichiers presse-papiers... www.commentcamarche.net/telecharger/telecharger-34055075-textwrangler
Télécharger A43A43 est un utilitaire de gestion de fichier sous Windows 2000 et XP. A43 intègre notamment : - un double affichage pour pouvoir gérer les fichiers plus rapidement. - un éditeur de texte sans limitation de taille, avec des surlignements pour les... www.commentcamarche.net/telecharger/telecharger-34055482-a43
Linux - L'éditeur 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 Vihaille) est un éditeur... www.commentcamarche.net/linux/linvi.php3
Linux - L'éditeur 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 actions se fait à... www.commentcamarche.net/tutlinux/linvi.php3
LaTeX - Premiers pas LaTeX est un langage compilé (on part d'un fichier source pour arriver à un fichier cible). La source est généralement un fichier texte dont l'extension est .tex et la cible un fichier dvi, postscript ou pdf. La commande de base pour compiler est la... www.commentcamarche.net/latex/latex-premiers-pas.php3
Toutes les réponses pour « editer fichier texte par un script »