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

Résolu
pcsystemd Messages postés 702 Date d'inscription   Statut Membre Dernière intervention   -  
pcsystemd Messages postés 702 Date d'inscription   Statut Membre Dernière intervention   -

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 41512 Date d'inscription   Statut Modérateur Dernière intervention   9 715
 

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 41512 Date d'inscription   Statut Modérateur Dernière intervention   9 715
 

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 702 Date d'inscription   Statut Membre Dernière intervention   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 702 Date d'inscription   Statut Membre Dernière intervention   23
 

Merci, c'est OK.


0