Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

supprimers les 2 premieres ligne d'un fichier et le retour chariot présent sur la troisieme ligne ?

1 réponse
Avatar
david
Bonjour,

J'ai plusieurs gros fichiers formatés ainsi :


--- debut de mon fichier
%!
(listingp.jdt) STARTLM
^M^L079 E3483 DU 15/12/2006 15/12/2006 CONTROLE C.A.I. GRAPPE
PTF PGE PAGE 1

<EUROS>
<TYPE DE GRAPPE><-------REFERENCE DE L'ENTITE--------------><--ZONE
ERRONEE--><-
VALEUR CAI-><-THEORIQUE--><---ECART----><--DBKEY--->
TRI ANO/D
etc...
---
,

Je cherche à supprimer les 2 premieres lignes, ainsi que le retour chariot
^M^L
de facon a ce que mon fichier débute par :


--- debut du nouveau fichier
079 E3483 DU 15/12/2006 15/12/2006 CONTROLE C.A.I. GRAPPE
PTF PGE PAGE 1

<EUROS>
<TYPE DE GRAPPE><-------REFERENCE DE L'ENTITE--------------><--ZONE
ERRONEE--><-
VALEUR CAI-><-THEORIQUE--><---ECART----><--DBKEY--->
TRI ANO/D
etc...
---

J'ai testé ceci, mais le -i n'est pas admi sur mon UNIX

sed -i.BAK '1d' monfichier

Avez vous une idée.
Trés cordialement

1 réponse

Avatar
Nicolas.MICHEL
david wrote:

Bonjour,

J'ai plusieurs gros fichiers formatés ainsi :


[snip]

J'ai testé ceci, mais le -i n'est pas admi sur mon UNIX
sed -i.BAK '1d' monfichier
Avez vous une idée.


Je ne suis pas très habile avec sed mais comme persone n'a répondu ...

sed -e '1,2d;3s/^...//' qq >qq1

produit chez moi le résultat escompté hormis l'option -i.

Pour faire ce que fait l'option -i sans l'option -i, une des possibilité
serait de faire une boucle à la noix du genre

l=0
for i in $(ta liste de fichiers)
do
l=$( expr $l + 1 )
sed ... >${i}${l}

--
Nicolas