Informations commande SED

Résolu
pcsystemd Messages postés 676 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2022 - 3 mai 2022 à 08:44
pcsystemd Messages postés 676 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2022 - 3 mai 2022 à 15:32
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 36984 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 6 février 2023 8 894
Modifié le 3 mai 2022 à 10:51
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 676 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2022 20
3 mai 2022 à 15:32
Merci.
0