Informations commande SED

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,

J'utilise les commandes SED et GREP pour nettoyer mon fichier :

sed '{/^ code/d;/^--/d;/^(/d;s/^ *//g;s/ *\(|\) */\1/g}' fichier | grep -Ev -e '^[[:blank:]]*(#|$)'


Le premier SED
  '/^ code/d'
supprime toutes les lignes qui commence par 'code' mais je souhaiterais que la suppression commence uniquement a partir de la ligne n°2

Exemple :
code |       nom        | none | avnt 
------+------------------+--------------+-------------
21548 | name1 | 258.5 | 74454
(1 row)

code | nom | none| avnt
------+-------------------------+--------------+-------------
2658546 | name2 | 9545.2 | 91354556
(1 row)

code | nom | none| avnt
------+-------------------------------+--------------+-------------
25489 | name3| 97845.1 | 1020365
(1 row)


Après traitement

code |       nom        | none | avnt 
------+------------------+--------------+-------------
21548 | name1 | 258.5 | 74454
(1 row)


------+-------------------------+--------------+-------------
2658546 | name2 | 9545.2 | 91354556
(1 row)


------+-------------------------------+--------------+-------------
25489 | name3| 97845.1 | 1020365
(1 row)

Merci

2 réponses

jee pee Messages postés 41510 Date d'inscription   Statut Modérateur Dernière intervention   9 715
 
Bonjour,

Je n'ai pas retrouvé si on peut le faire directement sur une recherche sed /../, je me demande si il ne faut pas passer par un awk et traiter les lignes. Mais on peut aussi biaiser :

sed '{1s/^ code/ Code/;/^ code/d}'
sed '{1p;/^ code/d}' 


1
pcsystemd Messages postés 702 Date d'inscription   Statut Membre Dernière intervention   23
 
Merci.
0