Sed et insertion de ligne vide au-dessus dans un fichier

Résolu
pcsystemd Messages postés 734 Statut Membre -  
pcsystemd Messages postés 734 Statut Membre -

Bonjour,

Le contenu du fichier est :

Name|id|lc office
AP|AP|8
ATME|ATME.U|17
BEMS|BEPMS|3
BCI|BCI|937
etc..
WEB27|WEB3|25
Part|N visle|Ce ace
AP|AP|{3241,3178,341,340,551,109,3171,3243}
ATME|ATME.U|{2936,2389,528,3617,6026,669,3185,2376,3938,2819,3431,3173,252,3547,2990,2877,48}
etc..

Je souhaite ajouter une ligne vide au-dessus de "Part|N visle|Ce ace" pour que cela fasse :

Name|id|lc office
AP|AP|8
ATME|ATME.U|17
BEMS|BEPMS|3
BCI|BCI|937
etc..
WEB27|WEB3|25

Part|N visle|Ce ace
AP|AP|{3241,3178,341,340,551,109,3171,3243}
ATME|ATME.U|{2936,2389,528,3617,6026,669,3185,2376,3938,2819,3431,3173,252,3547,2990,2877,48}
etc..

J'ai essayé cela ci-dessous mais cela ne fonctionne pas!

sed -e '/WEB27/{x;p;x;}

Une idée?

Merci


A voir également:

4 réponses

jee pee Messages postés 42371 Statut Modérateur 9 737
 

le \\ est bizarre mais en testant un classique \n (sur un linux lite bash) il ne fonctionnait pas mais dans mon environnement \\ oui

Si au départ tu as 2 fichiers, tu crées un fichier avec une ligne vide et tu concatènes les 3 fichiers

echo -e >vide.txt
cat test1.txt vide.txt test2.txt >test3.txt

1
jee pee Messages postés 42371 Statut Modérateur 9 737
 

Bonjour,
 

***********  ajout après
sed '/^WEB27.*/a \\' test.txt

Name|id|lc office
AP|AP|8
ATME|ATME.U|17
BEMS|BEPMS|3
BCI|BCI|937
etc..
WEB27|WEB3|25

Part|N visle|Ce ace
AP|AP|{3241,3178,341,340,551,109,3171,3243}
ATME|ATME.U|{2936,2389,528,3617,6026,669,3185,2376,3938,2819,3431,3173,252,3547,2990,2877,48}
etc..

******** insertion avant
sed '/^Part|N .*/i \\' test.txt

Name|id|lc office
AP|AP|8
ATME|ATME.U|17
BEMS|BEPMS|3
BCI|BCI|937
etc..
WEB27|WEB3|25

Part|N visle|Ce ace
AP|AP|{3241,3178,341,340,551,109,3171,3243}
ATME|ATME.U|{2936,2389,528,3617,6026,669,3185,2376,3938,2819,3431,3173,252,3547,2990,2877,48}
etc..

0
pcsystemd Messages postés 734 Statut Membre 23
 

Merci.

En fait  j'ai cela dans mon script bash :

sed -i '1iName|id|lc office' file1.csv | sed -i '1iPart|N visle|Ce ace' file2.csv

#Assemble les 2 fichiers en un seul puis insére une ligne vide au dessus de "Part|N visle|Ce ace" et redirection vers un troisième fichier
cat file2.csv >> file1.csv | sed -e '/^Part|N .*/i \\' file1.csv > file3.csv

Si je souhaite insérer une ligne vide avant 

Part|N visle|Ce ace

uniquement.j' ajoute ce que tu m'indiques dans mon script mais cela ne fonctionne pas.

sed -e '/^Part|N .*/i \\'

Une idée?


0
pcsystemd Messages postés 734 Statut Membre 23
 

Merci, c'est OK.


0