SED
Résolu
Jules
-
Jules -
Jules -
Bonjour à tous,
J'avais un fichier avec un séparateur ";" dans lel conteru du fichier.
Mon but était très simple, supprimer tous les caractères derrière ce ";" (";" inclus à cette suppression)
L'utilisation de la fonction awk en précisant le ";" comme délimiteur m'a suffit, par contre en passant par la fonction sed, je n'arrive pas à atteindre le même but ... je sais je sais, pourquoi se poser la question si j'ai déjà la solution ... par curiosité d'esprit ...
exemple :
Prenons mon fichier toto
$cat toto
a_garder ; a supprimer
a_garder ; a la poubelle
a_garder aussi ;
ma commande ci-dessous donne :
$ sed '/;$/d' toto
a_garder ; a supprimer
a_garder ; a la poubelle
par contre comme exprimer sous sed tous les caractères entre ";" et fin de ligne ('/;*$/d' ne fonctionne pas évidemment, ça aurait été trop facile ...)
En espérant avoir été clair dans ma demande ....
Merci d'avance pour vos réponses ou début de solution, je vais continuer de fouiller dans l'introduction à SED rédigé par jipicy.
J'avais un fichier avec un séparateur ";" dans lel conteru du fichier.
Mon but était très simple, supprimer tous les caractères derrière ce ";" (";" inclus à cette suppression)
L'utilisation de la fonction awk en précisant le ";" comme délimiteur m'a suffit, par contre en passant par la fonction sed, je n'arrive pas à atteindre le même but ... je sais je sais, pourquoi se poser la question si j'ai déjà la solution ... par curiosité d'esprit ...
exemple :
Prenons mon fichier toto
$cat toto
a_garder ; a supprimer
a_garder ; a la poubelle
a_garder aussi ;
ma commande ci-dessous donne :
$ sed '/;$/d' toto
a_garder ; a supprimer
a_garder ; a la poubelle
par contre comme exprimer sous sed tous les caractères entre ";" et fin de ligne ('/;*$/d' ne fonctionne pas évidemment, ça aurait été trop facile ...)
En espérant avoir été clair dans ma demande ....
Merci d'avance pour vos réponses ou début de solution, je vais continuer de fouiller dans l'introduction à SED rédigé par jipicy.
A voir également:
- SED
- Remplacez le mot sed par le mot mais dans tout le texte. combien de caractères contient le document suite à cette modification (en incluant les espaces) ? - Guide
- Sed et ses caprices (ou les miens) ✓ - Forum Linux / Unix
- Sed crlf - Astuces et Solutions
- Sed - Remplacement texte par retour à la ligne ? ✓ - Forum Linux / Unix
- Sed supprimer ligne vide - Forum Linux / Unix
2 réponses
sed 's/;.*$//' toto :)
ie: remplacer (s => substitute) ";<nimporte quels caractères jusqu'à la fin de ligne>" par rien.
La commande sed '/;$/d' toto sert a supprimer du fichier toto les lignes dont le dernier caractère est ';', et la commande sed '/;*$/d' toto sert a supprimer du fichier toto toutes les lignes terminant par 0, 1 ou n ';' (donc toutes les lignes)
ie: remplacer (s => substitute) ";<nimporte quels caractères jusqu'à la fin de ligne>" par rien.
La commande sed '/;$/d' toto sert a supprimer du fichier toto les lignes dont le dernier caractère est ';', et la commande sed '/;*$/d' toto sert a supprimer du fichier toto toutes les lignes terminant par 0, 1 ou n ';' (donc toutes les lignes)