Sed et insertion de ligne vide au-dessus dans un fichier
Résolupcsystemd 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
L'accès au savoir est la première liberté que chaque homme devrait avoir.
4 réponses
-
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
-
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..
-
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 aceuniquement.j' ajoute ce que tu m'indiques dans mon script mais cela ne fonctionne pas.
sed -e '/^Part|N .*/i \\'
Une idée?
-