Sed
Résolu
                    
        
     
             
                    guillaume0811
    
        
    
                    Messages postés
            
                
     
             
            95
        
            
                                    Statut
            Membre
                    
                -
                                     
guillaume0811 Messages postés 95 Statut Membre -
        guillaume0811 Messages postés 95 Statut Membre -
        Bonjour, 
Je débute en sed et je cherche à modifier la totalité d'une ligne commencant par > :
>XXXXXXXX
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
>YYYYYYYYY
bbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbb
>ZZZZZZZZZ
ccccccccccccccccccccccccccccc
ccccccccccccccccccccccccccccc
pour donner :
>XXXXXXX
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
tttttttttttttttt
bbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbb
tttttttttttttttt
cccccccccccccccccccccccccccccc
cccccccccccccccccccccccccccccc
Je bloque pour modifier la ligne en entier...
                
            
                
    
    
    
        Je débute en sed et je cherche à modifier la totalité d'une ligne commencant par > :
>XXXXXXXX
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
>YYYYYYYYY
bbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbb
>ZZZZZZZZZ
ccccccccccccccccccccccccccccc
ccccccccccccccccccccccccccccc
pour donner :
>XXXXXXX
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
tttttttttttttttt
bbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbb
tttttttttttttttt
cccccccccccccccccccccccccccccc
cccccccccccccccccccccccccccccc
Je bloque pour modifier la ligne en entier...
        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 crlf - Astuces et Solutions
- Sed et ses caprices (ou les miens) ✓ - Forum Linux / Unix
- Sed - Remplacement texte par retour à la ligne ? ✓ - Forum Linux / Unix
- Sed supprimer ligne vide - Forum Linux / Unix
2 réponses
                        
                    Bonjour,
S'il vous plaît
Merci
Au revoir
etc.
Sont monnaie courante quand on veut obtenir quelque chose !
Saine lecture...*
A voir aussi
Merci de votre compréhension.
De plus j'ai rien compris à ton histoire ;-((
Modifier une ligne qui commence par ">" par quoi ? Des "ttt" ? Combien ?
Pourquoi la 1ère ligne n'est pas prise en compte ?
;-)
* Bonus
    
                S'il vous plaît
Merci
Au revoir
etc.
Sont monnaie courante quand on veut obtenir quelque chose !
Saine lecture...*
A voir aussi
Merci de votre compréhension.
De plus j'ai rien compris à ton histoire ;-((
Modifier une ligne qui commence par ">" par quoi ? Des "ttt" ? Combien ?
Pourquoi la 1ère ligne n'est pas prise en compte ?
;-)
* Bonus
                        
                    Bonjour,
Excusez moi, je vais recommencer ;-)
Voila un exemple de fichier que je dispose :
>sp|Q197F8|002R_IIV3
MASNTVSAQGGSNRPVRDFSNIQDVAQFLLFDPIWNEQPGSIVPWKMNREQALAE
>sp|Q197F7|003L_IIV3
MYQAINPCPQSWYGSPQLEREIVCKMSGAPHYPNYYPVHPNALGGAWFDTSLNARS
>sp|Q197F5|005L_IIV3
MRYTVLIALQGALLLLLLIDDGQGQSPYPYPGMPCNSSRQCGLGTCVHSRCAHCSS
Je souhaiterais modifier les lignes commencants par un ">" par une autre chaine de caractère, on va dire "MCMCMC" à l'exeption de la première ligne.
donc ca donnerait:
>sp|Q197F8|002R_IIV3
MASNTVSAQGGSNRPVRDFSNIQDVAQFLLFDPIWNEQPGSIVPWKMNREQALAE
MCMCMC
MYQAINPCPQSWYGSPQLEREIVCKMSGAPHYPNYYPVHPNALGGAWFDTSLNARS
MCMCMC
MRYTVLIALQGALLLLLLIDDGQGQSPYPYPGMPCNSSRQCGLGTCVHSRCAHCSS
J'ai tenté ceci : sed -e '2,$ s/^>/MCMCMC/g'
mais ceci ne modifie pas la ligne en entier, seulement le ">"
J'espère m'être mieux fait comprendre.
Merci
    
                Excusez moi, je vais recommencer ;-)
Voila un exemple de fichier que je dispose :
>sp|Q197F8|002R_IIV3
MASNTVSAQGGSNRPVRDFSNIQDVAQFLLFDPIWNEQPGSIVPWKMNREQALAE
>sp|Q197F7|003L_IIV3
MYQAINPCPQSWYGSPQLEREIVCKMSGAPHYPNYYPVHPNALGGAWFDTSLNARS
>sp|Q197F5|005L_IIV3
MRYTVLIALQGALLLLLLIDDGQGQSPYPYPGMPCNSSRQCGLGTCVHSRCAHCSS
Je souhaiterais modifier les lignes commencants par un ">" par une autre chaine de caractère, on va dire "MCMCMC" à l'exeption de la première ligne.
donc ca donnerait:
>sp|Q197F8|002R_IIV3
MASNTVSAQGGSNRPVRDFSNIQDVAQFLLFDPIWNEQPGSIVPWKMNREQALAE
MCMCMC
MYQAINPCPQSWYGSPQLEREIVCKMSGAPHYPNYYPVHPNALGGAWFDTSLNARS
MCMCMC
MRYTVLIALQGALLLLLLIDDGQGQSPYPYPGMPCNSSRQCGLGTCVHSRCAHCSS
J'ai tenté ceci : sed -e '2,$ s/^>/MCMCMC/g'
mais ceci ne modifie pas la ligne en entier, seulement le ">"
J'espère m'être mieux fait comprendre.
Merci
    Salut,
.* - c'est une très grand histoire qui peu provoquer beaucoup des choses bonnes et/ou mauvaise
. (le point) - c'est une classe de caractère qui peut reconnaître n'importe quel caractère
* (l'étoile) - c'est un quantification qui s'applique au métacaractère précèdent avec la possibilité de reconnaître zéro fois, une fois où n'importe combien des fois le moteur de regex peuvent.
En général sans autre traitement cet motif .* est gourmand et il avale tout jusqu'à la fin de la chaîne.
On peut le stopper d'avaler tout, en l'ancrant au début, à la fin ou au début et à la fin
Sed n'est qu'un outil qui utilise les regex à sa façon. Toutefois si le domaine des regex t'intéresse, en plus de sed qui reste un outil, très puissant mais un outil, tu dois te pencher plutôt sur le petit mini langage des regex.
Ca te permettra de les utiliser avec n'importe quel outil.
Depuis quand j'ai lui le livre https://docstore.mik.ua/orelly/perl4/mre/index.htm à chaque utilisation de PC j'ai tapé au moins une regex.
    .* - c'est une très grand histoire qui peu provoquer beaucoup des choses bonnes et/ou mauvaise
. (le point) - c'est une classe de caractère qui peut reconnaître n'importe quel caractère
* (l'étoile) - c'est un quantification qui s'applique au métacaractère précèdent avec la possibilité de reconnaître zéro fois, une fois où n'importe combien des fois le moteur de regex peuvent.
En général sans autre traitement cet motif .* est gourmand et il avale tout jusqu'à la fin de la chaîne.
On peut le stopper d'avaler tout, en l'ancrant au début, à la fin ou au début et à la fin
Sed n'est qu'un outil qui utilise les regex à sa façon. Toutefois si le domaine des regex t'intéresse, en plus de sed qui reste un outil, très puissant mais un outil, tu dois te pencher plutôt sur le petit mini langage des regex.
Ca te permettra de les utiliser avec n'importe quel outil.
Depuis quand j'ai lui le livre https://docstore.mik.ua/orelly/perl4/mre/index.htm à chaque utilisation de PC j'ai tapé au moins une regex.
