Re: [Resolu][script] modifier le dernier caractere de chaque ligne d'un fichier

2007-05-30 Par sujet Alexandre Mackow

Edi STOJICEVIC wrote:


* Alexandre Mackow <[EMAIL PROTECTED]> [2007-05-29 15:55:10 +0200] wrote :

 

   



Salut,

Tu as une liste dédié sur les shellscript disponible ici :
   --> http://debianworld.org/?q=shellscript-fr

   A+

 


Bonjour,
merci pour le lien j'y cours...
C'est donc resolu, merci sed et merci a tous ceux ayant apporté leur 
contribution à la résolution de mon soucis.
Pour precision c'etait bien le dernier caractère de chaque ligne que je 
devais modifier, comme l'indique le titre, mon corps de message etant un 
peu plus confus.

Encore merci.
++


--

Alexandre Mackow



--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench   
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et

"Reply-To:"

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: [script] modifier le dernier caractere de chaque ligne d'un fichier

2007-05-30 Par sujet Jacques L'helgoualc'h
Daniel Caillibaud a écrit, mercredi 30 mai 2007, à 14:33 :
> Jacques L'helgoualc'h wrote:
> >On peut simplifier :
> >
> > sed -i.bak -e 's/.$/4/' fichier
> 
> Oui, mais là tu remplace le dernier caractère de toutes les lignes par un 4.
> J'avais compris qu'il fallait l'ajouter à la fin de la dernière ligne.

Toutes les lignes non-vides. Alexandre demandait

 «  si le nom du fichier contient un P alors remplacer le
dernier caractère par un 4 »

Effectivement ambigu, mais la suite est claire

 « Comment faire pour remplacer le dernier caractere de chaque ligne »

-- 
Jacques L'helgoualc'h


-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench   
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: [script] modifier le dernier caractere de chaque ligne d'un fichier

2007-05-30 Par sujet Edi STOJICEVIC
* Alexandre Mackow <[EMAIL PROTECTED]> [2007-05-29 15:55:10 +0200] wrote :

> Bonjour à tous,
> je suis amené, dans le cadre de mon taf, a essayer de metter en place 
> une solution de scripting.
> J'ai un repertoire donné, dans ce repertoire via une tache cron,  je 
> dois effectuer une modif sur le fichier...
> En reel ca donne, si le nom du fichier contient un  P alors remplacer le 
> dernier caractère par un 4
> Comment faire pour remplacer le dernier caractere de chaque ligne
> Certainement via sed mais je ne trouve pas l'option dernier caractere...
> 
> Quelqu'un connait il une solution?
> Par avance merci.

Salut,

Tu as une liste dédié sur les shellscript disponible ici :
--> http://debianworld.org/?q=shellscript-fr

A+

-- 
. ''`.  (\___/) E d i   S T O J I C E V I C
: :'  : (='.'=) http://www.debianworld.org 
`. `~'  (")_(") GPG: 0x1237B032
  `-


-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench   
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: [script] modifier le dernier caractere de chaque ligne d'un fichier

2007-05-30 Par sujet Daniel Caillibaud

Jacques L'helgoualc'h wrote:

On peut simplifier :

 sed -i.bak -e 's/.$/4/' fichier


Oui, mais là tu remplace le dernier caractère de toutes les lignes par un 4.
J'avais compris qu'il fallait l'ajouter à la fin de la dernière ligne.

--
Daniel


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench   
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et

"Reply-To:"

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: [script] modifier le dernier caractere de chaque ligne d'un fichier

2007-05-30 Par sujet Jacques L'helgoualc'h
Daniel Caillibaud a écrit, mercredi 30 mai 2007, à 11:13 :
> Alexandre Mackow wrote:
> 
> >Bonjour à tous,

bonjour,

> >je suis amené, dans le cadre de mon taf, a essayer de metter en place 
> >une solution de scripting.
> >J'ai un repertoire donné, dans ce repertoire via une tache cron,  je 
> >dois effectuer une modif sur le fichier...
> >En reel ca donne, si le nom du fichier contient un  P alors remplacer le 
> >dernier caractère par un 4
> 
> Le dernier caractère du fichier ou de son nom ?
> 
> >Comment faire pour remplacer le dernier caractere de chaque ligne
> >Certainement via sed
> 
> oui, par exemple
> 
> >mais je ne trouve pas l'option dernier caractere...
> 
> dernier de la ligne, c'est '$' dans une regexp (les autres ont répondu), le 
> dernier du fichier, c'est aussi $ mais comme sélecteur
> Par exemple
> sed -i -e '$ s/\(.*\)$/\14/' fichier
> 
> va ajouter le caractère 4 à la fin de la dernière ligne de fichier.
> 
> le -i précise de faire ça sur le fichier directement, sans backup.
> Pour un backup du fichier original (avec ajout de .bak)
> sed -i .bak -e '$ s/\(.*\)$/\14/' fichier

On peut simplifier :

 sed -i.bak -e 's/.$/4/' fichier

ou  's/.\?$/4/' sur  toutes les  lignes, mêmes  vides. Pour  la question
posée,

 cd répertoire/ &&  sed -i.bak -e 's/.$/4/' *P*

donnera un avertissement si un nom de sous-répertoire contient un P.

> cf entre autres, http://cli.asyd.net/home/filtres/sed

Cf. aussi http://sed.sf.net/ et ses collections d'unilignes.
-- 
Jacques L'helgoualc'h


-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench   
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: [script] modifier le dernier caractere de chaque ligne d'un fichier

2007-05-30 Par sujet Daniel Caillibaud

Alexandre Mackow wrote:


Bonjour à tous,
je suis amené, dans le cadre de mon taf, a essayer de metter en place 
une solution de scripting.
J'ai un repertoire donné, dans ce repertoire via une tache cron,  je 
dois effectuer une modif sur le fichier...
En reel ca donne, si le nom du fichier contient un  P alors remplacer le 
dernier caractère par un 4


Le dernier caractère du fichier ou de son nom ?


Comment faire pour remplacer le dernier caractere de chaque ligne
Certainement via sed


oui, par exemple


mais je ne trouve pas l'option dernier caractere...


dernier de la ligne, c'est '$' dans une regexp (les autres ont répondu), le 
dernier du fichier, c'est aussi $ mais comme sélecteur
Par exemple
sed -i -e '$ s/\(.*\)$/\14/' fichier

va ajouter le caractère 4 à la fin de la dernière ligne de fichier.

le -i précise de faire ça sur le fichier directement, sans backup.
Pour un backup du fichier original (avec ajout de .bak)
sed -i .bak -e '$ s/\(.*\)$/\14/' fichier

cf entre autres, http://cli.asyd.net/home/filtres/sed

--
Daniel


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench   
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et

"Reply-To:"

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: Fwd: [script] modifier le dernier caractere de chaque ligne d'un fichier

2007-05-29 Par sujet Alexandre Mackow

Galevsky wrote:


-- Forwarded message --
From: Galevsky <[EMAIL PROTECTED]>
Date: 29 mai 2007 16:11
Subject: Re: [script] modifier le dernier caractere de chaque ligne 
d'un fichier

To: Alexandre Mackow <[EMAIL PROTECTED]>


alors pour ce qui est des regexp. le web regorge de doc.

pour info /.*\(.\).$/  se lit:

".*" => n'importe quel caractère un nombre inconnu de fois (0->n)
suivi de "\(.\)" un seul caractère qui est capturé, suivi de ".$" qui
signifie un seul caractère situé tout a la fin de la ligne. Et oui,
/^toto.*/ match une ligne commençant par toto, et /.*tata$/ une ligne
finissant par tata. Donc dans ton sed tu veux capturer tout sauf le
dernier  caractère et ajouter un 4 :

[1016] echo "hello world" | sed -e "s/\(.*\).$/\14/"
hello worl4

En ce qui concerne cycler dans ton répertoire, et faire le test du
filename qui possède un "P", je te laisse essayer par tes propres
moyens ;o)

Mais te donne au passage le lien suivant:
http://www.tldp.org/LDP/abs/html/index.html

Gal'


Yep merci à tous les 2 ( Thomas Clavier et galevsky )
C'est pile poil ce que je desirai

Merci pour la reactivité
++


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench   
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et

"Reply-To:"

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Fwd: [script] modifier le dernier caractere de chaque ligne d'un fichier

2007-05-29 Par sujet Galevsky

-- Forwarded message --
From: Galevsky <[EMAIL PROTECTED]>
Date: 29 mai 2007 16:11
Subject: Re: [script] modifier le dernier caractere de chaque ligne d'un fichier
To: Alexandre Mackow <[EMAIL PROTECTED]>


alors pour ce qui est des regexp. le web regorge de doc.

pour info /.*\(.\).$/  se lit:

".*" => n'importe quel caractère un nombre inconnu de fois (0->n)
suivi de "\(.\)" un seul caractère qui est capturé, suivi de ".$" qui
signifie un seul caractère situé tout a la fin de la ligne. Et oui,
/^toto.*/ match une ligne commençant par toto, et /.*tata$/ une ligne
finissant par tata. Donc dans ton sed tu veux capturer tout sauf le
dernier  caractère et ajouter un 4 :

[1016] echo "hello world" | sed -e "s/\(.*\).$/\14/"
hello worl4

En ce qui concerne cycler dans ton répertoire, et faire le test du
filename qui possède un "P", je te laisse essayer par tes propres
moyens ;o)

Mais te donne au passage le lien suivant:
http://www.tldp.org/LDP/abs/html/index.html

Gal'

Le 29/05/07, Alexandre Mackow<[EMAIL PROTECTED]> a écrit :

Bonjour à tous,
je suis amené, dans le cadre de mon taf, a essayer de metter en place
une solution de scripting.
J'ai un repertoire donné, dans ce repertoire via une tache cron,  je
dois effectuer une modif sur le fichier...
En reel ca donne, si le nom du fichier contient un  P alors remplacer le
dernier caractère par un 4
Comment faire pour remplacer le dernier caractere de chaque ligne
Certainement via sed mais je ne trouve pas l'option dernier caractere...

Quelqu'un connait il une solution?
Par avance merci.

++





--

Alexandre Mackow



--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]






Re: [HS] [script] modifier le dernier caractere de chaque ligne d'un fichier

2007-05-29 Par sujet Thomas Clavier
Alexandre Mackow a écrit :
> Certainement via sed mais je ne trouve pas l'option dernier caractere...
à défaut de dernier caractère, il y a la fin de ligne, ce qui donne :
s/\(.*\).$/\14/


-- 
Thomas Clavier  http://www.tcweb.org
Lille Sans Fil  http://www.lillesansfil.org
+33 (0)6 20 81 81 30JabberID : [EMAIL PROTECTED]



smime.p7s
Description: S/MIME Cryptographic Signature


[script] modifier le dernier caractere de chaque ligne d'un fichier

2007-05-29 Par sujet Alexandre Mackow

Bonjour à tous,
je suis amené, dans le cadre de mon taf, a essayer de metter en place 
une solution de scripting.
J'ai un repertoire donné, dans ce repertoire via une tache cron,  je 
dois effectuer une modif sur le fichier...
En reel ca donne, si le nom du fichier contient un  P alors remplacer le 
dernier caractère par un 4

Comment faire pour remplacer le dernier caractere de chaque ligne
Certainement via sed mais je ne trouve pas l'option dernier caractere...

Quelqu'un connait il une solution?
Par avance merci.

++





--

Alexandre Mackow



--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench   
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et

"Reply-To:"

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]