Dupliquer et modifier une ligne

Résolu
rooty Messages postés 4 Statut Membre -  
rooty Messages postés 4 Statut Membre -
bonjour,

j'aimerais dupliquer une ligne et modifier la première ligne. J'ai un fichier d'entrée contenant une ligne et il me faudrait dupliquer cette ligne et la modifier dans un fichier de sortie comme l'exemple ci-dessous.

Si quelqu'un peut m'aider....

Merci d'avance


fichier d'entrée :
VERTOGAR;n;*;*;PARAMCFT:part=ORGA

fichier de sortie :
VERTOGAR;n;ORGA;*;PARAMCFT:part=$ORGA => ligne dupliquée et modifiée
VERTOGAR;n;*;*;PARAMCFT:part=ORGA => ligne à dupliquer
A voir également:

4 réponses

dubcek Messages postés 19021 Statut Contributeur 5 637
 
hello
avec awk
$ awk 'BEGIN {FS=OFS=";"} NR==1 {x=$0; split($NF, a, "[:=]"); $3=a[3]; sub("=", "=$"); print $0 RS x} NR!=1' fichier
VERTOGAR;n;ORGA;*;PARAMCFT:part=$ORGA
VERTOGAR;n;*;*;PARAMCFT:part=ORGA
2
rooty Messages postés 4 Statut Membre
 
Super merci beaucoup
0
zipe31 Messages postés 38797 Statut Contributeur 6 433
 
Salut,

Un truc comme ça :

$ cat plop 
VERTOGAR;n;*;*;PARAMCFT:part=ORGA
blabla
blibli
blublu

$ sed '1{h;s/\(.*n;\)[^;]*\(.*=\)\(.*\)/\1\3\2$\3/;G}' plop
VERTOGAR;n;ORGA;*;PARAMCFT:part=$ORGA
VERTOGAR;n;*;*;PARAMCFT:part=ORGA
blabla
blibli
blublu

0
rooty
 
merci pour la réponse mais cela ne fonctionne pas

#sed '1{h;s/\(.*n;\)[^;]*\(.*=\)\(.*\)/\1\3\2$\3/;G}' plop
sed : 0602-404 Analyse syntaxique de la fonction 1{h;s/\(.*n;\)[^;]*\(.*=\)\(.*\)/\1\3\2$\3/;G} impossible.
0
zipe31 Messages postés 38797 Statut Contributeur 6 433
 
Sur quel système es-tu ? Quelle version de sed ?
0
rooty Messages postés 4 Statut Membre
 
je suis sur AIX... par contre je ne connais pas la version utilisé
0
zipe31 Messages postés 38797 Statut Contributeur 6 433
 
Sans garantie...

Mets les instructions sed dans un fichier :
$ cat script.sed 
1 {
h
s/\(.*n;\)[^;]*\(.*=\)\(.*\)/\1\3\2$\3/
G
}

Et appelle-le comme suit :
$ sed -f script.sed plop 
VERTOGAR;n;ORGA;*;PARAMCFT:part=$ORGA
VERTOGAR;n;*;*;PARAMCFT:part=ORGA
blabla
blibli
blublu
0
rooty Messages postés 4 Statut Membre
 
ba tjs pareil....

#sed -f script.sed plop
sed : 0602-404 Analyse syntaxique de la fonction h impossible.
0
zipe31 Messages postés 38797 Statut Contributeur 6 433
 
C'est bizarre, d'après la page de man AIX, il n'y a rien dans la syntaxe qui puisse générer cette erreur ;-\

Désolé, je ne sais quoi te dire de plus ;-(
0