Dupliquer et modifier une ligne

Résolu
rooty Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
rooty Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -
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 18789 Date d'inscription   Statut Contributeur Dernière intervention   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 Date d'inscription   Statut Membre Dernière intervention  
 
Super merci beaucoup
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430
 
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 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430
 
Sur quel système es-tu ? Quelle version de sed ?
0
rooty Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
je suis sur AIX... par contre je ne connais pas la version utilisé
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430
 
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 Date d'inscription   Statut Membre Dernière intervention  
 
ba tjs pareil....

#sed -f script.sed plop
sed : 0602-404 Analyse syntaxique de la fonction h impossible.
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430
 
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