Pages : 1
#1 Le 09/11/2017, à 15:54
- spectre128
sed
bonjour,
je cherche a supprimer avec sed sur toutes les lignes d'un fichier
du debut de ligne jusqu'au 1er "point" rencontré, je sais pas du tout comment faire
exemple:
totobill.azertyupio -> azertyupio
a.bbbbb -> bbbbb
du genre
sed 's/^ (je sais pas) //'
quelqu'un peut il m'aider ?
Merci d'avance.
cordialement.
Hors ligne
#2 Le 09/11/2017, à 16:24
- mikael8349
Re : sed
Bonjour,
J'ai une solution pour supprimer tout ce qui va jusqu'au dernier point rencontré (mais pas le premier )
Voici un exemple de fichier à modifier :
cat test.txt
zeazr.slkfjls
s.sklfjsfkdl.ldskf
.ldksjfkldf
Voici un exemple en live (le fichier n'est pas modifié) :
sed "s/^.*\.//g" test.txt
slkfjls
ldskf
ldksjfkldf
Voici un exemple (le fichier est modifié) :
sed -i "s/^.*\.//g" test.txt
# ce qui donne
cat test.txt
slkfjls
ldskf
ldksjfkldf
Pour la comprehension de la commande sed "s/^.*\.//g" :
s : substitution de string
^.*\. : string qui match la regex ^.*\., c'est a dire du début du fichier (^),n'importe quel caractères répétés un nombre de fois indéterminé (.*), jusqu'au dernier point \.
//g : la précedente string est remplacé par rien (suppression donc), et on applique ça a toute les lignes (g)
Hors ligne
#3 Le 09/11/2017, à 16:29
- mikael8349
Re : sed
C'est bon j'ai trouvé, il faut remplacer .* par [^.]* (cad. tout sauf le point) :
sed "s/^[^.]*\.//" test.txt
slkfjls
sklfjsfkdl.ldskf
ldksjfkldf
Dernière modification par mikael8349 (Le 09/11/2017, à 16:29)
Hors ligne
#4 Le 09/11/2017, à 18:05
- pingouinux
Re : sed
Bonjour,
Autre méthode :
cut -d. -f2- test.txt
Hors ligne
#5 Le 15/11/2017, à 11:11
- spectre128
Re : sed
Bonjour à tous
merci de vos reponses, je pars sur la solution de mikael8349
autrement , pas mal ton site mikael8349, j'ai decouvert le while IFS= .......
Bonne journée.
cordialement.
Hors ligne
#6 Le 15/11/2017, à 12:43
- mikael8349
Hors ligne
Pages : 1