Remplacer une ligne contenant un motif par une ligne vide

Résolu/Fermé
olivier - 23 févr. 2016 à 11:56
dna.factory Messages postés 25645 Date d'inscription mercredi 18 avril 2007 Statut Modérateur Dernière intervention 20 mars 2025 - 25 févr. 2016 à 15:25
Bonjour,

Je suis en train de réaliser un petit script sh mais je bloque. Un peu d'aide serait la bienvenue :). Merci par avance.

Je souhaiterais remplacer les lignes contenant un motif (dans mon cas 0.00) par une ligne vide.




A voir également:

1 réponse

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 422
23 févr. 2016 à 11:59
Salut,

Voir avec sed
0
Bonjour,

J'ai cherché avec la commande sed mais je ne dois pas avoir les bons mots-clé car je n'ai pas trouvé.
PS: je n'ai pas beaucoup de base en informatique, je me sert de petit script pour traiter des données issues de calcul scientifique.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 422 > olivier
23 févr. 2016 à 13:05
 
sed -i.bak '/0.00/z' fichier
0
Merci beaucoup ça marche nickel.

Que signifie le .bak ?
le z correspond-il à null-data ? Autrement dit, est-ce que c'est cette option qui est responsable de remplacer la ligne contenant le motif par une ligne vide ?

En tout cas encore merci zipe31 :)
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 422 > olivier
23 févr. 2016 à 13:54
Que signifie le .bak ?
Il permet de faire une copie du fichier original (renommé en nom_fichier.bak) avant d'appliquer les modifications.
le z correspond-il à null-data ?
Oui, c'est une nouvelle option de sed qui permet d'effacer la ligne correspondant au motif. C'est un raccourci à la syntaxe
s/.*//
. Noter que cette action (z) est différente de l'option "d" qui elle permet de supprimer la ligne.

Toutes ces informations se trouvent dans le
man sed
ou
info sed
accessible depuis n'importe quel terminal sous GNU/Linux ;-\

Extrait info sed :
`-z'
`--null-data'
`--zero-terminated'
Treat the input as a set of lines, each terminated by a zero byte
(the ASCII `NUL' character) instead of a newline. This option can
be used with commands like `sort -z' and `find -print0' to process
arbitrary file names.
0
dna.factory Messages postés 25645 Date d'inscription mercredi 18 avril 2007 Statut Modérateur Dernière intervention 20 mars 2025 1 615
25 févr. 2016 à 13:28
Il permet de faire une copie du fichier original (renommé en nom_fichier.bak) avant d'appliquer les modifications.
Ho l'autre, il fait des copies de sauvegardes... même pas joueur...
0