Navigation dans le texte
Résolu/Fermé
A voir également:
- Navigation dans le texte
- Navigation privée - Guide
- Excel cellule couleur si condition texte - Guide
- Transcription audio en texte word gratuit - Guide
- Insérer une image dans word sans bouger le texte - Guide
- Effacer les données de navigation - Guide
5 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 418
15 déc. 2011 à 16:22
15 déc. 2011 à 16:22
Salut,
$ cat plop Nombre1=54154151454151 Nombre2=54154121358989 Nombre24=91754276213778 $ sed 's/\(.*=\)\(.*\)/Eh oui, le nombre était "\2", vous avez bien entendu, "\2"/' plop Eh oui, le nombre était "54154151454151", vous avez bien entendu, "54154151454151" Eh oui, le nombre était "54154121358989", vous avez bien entendu, "54154121358989" Eh oui, le nombre était "91754276213778", vous avez bien entendu, "91754276213778" $
Utilisateur anonyme
15 déc. 2011 à 16:42
15 déc. 2011 à 16:42
Salut Zipe,
Génial ta commande, mais j'ai un soucis, dans le fichier texte, il y a aussi lettre=jfncjece...
Donc du coup ça ne fonctionne pas.. J'aurais sûrement du le préciser mais sur le coup je n'y ai pas pensé...
(sourire)
Merci à toi :-)
Génial ta commande, mais j'ai un soucis, dans le fichier texte, il y a aussi lettre=jfncjece...
Donc du coup ça ne fonctionne pas.. J'aurais sûrement du le préciser mais sur le coup je n'y ai pas pensé...
(sourire)
Merci à toi :-)
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 418
15 déc. 2011 à 16:52
15 déc. 2011 à 16:52
Bon, à quoi ressemble exactement le fichier AVANT et surtout à quoi doit-il ressembler APRÈS ?
Utilisateur anonyme
15 déc. 2011 à 16:58
15 déc. 2011 à 16:58
AVANT
Chiffre mystère=XXXXXXX
Clef secrète=XXXXXX
Nombre1=54154151454151
Nombre2=54154121358989
(...)
Nombre24=91754276213778
Lettre1=jdnedljdoejzbfêofne
Lettre2=jefoefejbduiezdkzne
(...)
Lettre24=klejfnejfnegzurongr
APRES
Eh oui, le nombre était "54154151454151", vous avez bien entendu, "54154151454151"
Eh oui, le nombre était "54154121358989", vous avez bien entendu, "54154121358989"
Eh oui, le nombre était "91754276213778", vous avez bien entendu, "91754276213778"
(...)
On exclut tout sauf nombre..
Chiffre mystère=XXXXXXX
Clef secrète=XXXXXX
Nombre1=54154151454151
Nombre2=54154121358989
(...)
Nombre24=91754276213778
Lettre1=jdnedljdoejzbfêofne
Lettre2=jefoefejbduiezdkzne
(...)
Lettre24=klejfnejfnegzurongr
APRES
Eh oui, le nombre était "54154151454151", vous avez bien entendu, "54154151454151"
Eh oui, le nombre était "54154121358989", vous avez bien entendu, "54154121358989"
Eh oui, le nombre était "91754276213778", vous avez bien entendu, "91754276213778"
(...)
On exclut tout sauf nombre..
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 418
15 déc. 2011 à 17:02
15 déc. 2011 à 17:02
$ cat plop Chiffre mystère=XXXXXXX Clef secrète=XXXXXX Nombre1=54154151454151 Nombre2=54154121358989 (...) Nombre24=91754276213778 Lettre1=jdnedljdoejzbfêofne Lettre2=jefoefejbduiezdkzne (...) Lettre24=klejfnejfnegzurongr $ sed -n '/^Nombre/ s/\(.*=\)\(.*\)/Eh oui, le nombre était "\2", vous avez bien entendu, "\2"/p' plop Eh oui, le nombre était "54154151454151", vous avez bien entendu, "54154151454151" Eh oui, le nombre était "54154121358989", vous avez bien entendu, "54154121358989" Eh oui, le nombre était "91754276213778", vous avez bien entendu, "91754276213778" $
Utilisateur anonyme
15 déc. 2011 à 17:09
15 déc. 2011 à 17:09
Merci beaucoup ça fonctionne ;-)
Peux-tu m'expliquer cette partie :
sed -n '/^Nombre/ s/\(.*=\)\(.*\)/Eh oui, le nombre était "\2", vous avez bien entendu, "\2"/p'
Et pourquoi utiliser "/2" ? C'est la variable x dans nombre=x, mais qu'est ce qui la déclare ?
Peux-tu m'expliquer cette partie :
sed -n '/^Nombre/ s/\(.*=\)\(.*\)/Eh oui, le nombre était "\2", vous avez bien entendu, "\2"/p'
Et pourquoi utiliser "/2" ? C'est la variable x dans nombre=x, mais qu'est ce qui la déclare ?
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 418
15 déc. 2011 à 17:19
15 déc. 2011 à 17:19
Plutôt que de grands discours : Les sous-expressions et références arrières ;-))
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 418
15 déc. 2011 à 17:28
15 déc. 2011 à 17:28
Oui.
/\(.*=\)
Correspond à la 1ère sous-expression (\1) qui comprend tout le début de la ligne jusqu'au signe égale.
\(.*\)
Correspond à la 2ème sous-expression (\2) qui comprend tout ce qui se trouve après le signe égale jusqu'à la fin de la ligne
/\(.*=\)
Correspond à la 1ère sous-expression (\1) qui comprend tout le début de la ligne jusqu'au signe égale.
\(.*\)
Correspond à la 2ème sous-expression (\2) qui comprend tout ce qui se trouve après le signe égale jusqu'à la fin de la ligne
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
15 déc. 2011 à 17:37
15 déc. 2011 à 17:37
D'accord merci ;-)
Une autre question. Les caractères spéciaux valent pour toutes lignes de code ? Un * sera toujours un * qu'il soit dans une ligne avec dpkg ou sed ?
Dernière chose, j'ai beau lire et relire, les regex j'ai du mal, c'est quoi exactement ?
Je me suis farcis tout Wipikédia, toujours pas compris.. Enfin je saisie les grandes lignes, mais sans plus..
Une autre question. Les caractères spéciaux valent pour toutes lignes de code ? Un * sera toujours un * qu'il soit dans une ligne avec dpkg ou sed ?
Dernière chose, j'ai beau lire et relire, les regex j'ai du mal, c'est quoi exactement ?
Je me suis farcis tout Wipikédia, toujours pas compris.. Enfin je saisie les grandes lignes, mais sans plus..
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 418
15 déc. 2011 à 17:55
15 déc. 2011 à 17:55
Une autre question. Les caractères spéciaux valent pour toutes lignes de code ? Un * sera toujours un * qu'il soit dans une ligne avec dpkg ou sed ?
Oui et non. En gros oui ils ont toujours la même signification, mais chaque programme peut les implémenter différemment ;-\
Dernière chose, j'ai beau lire et relire, les regex j'ai du mal, c'est quoi exactement ?
Ça c'est un monde à elles toutes seules.
Pour reprendre la description qu'il en est fait dans la faq sur sed :
Une expression régulière est un motif (pattern en anglais) qui entre en correspondance, de la gauche vers la droite, avec une chaîne de caractères.
Les expressions régulières tirent leur puissance de leurs capacités d'inclure des alternatives et des répétitions dans l'élaboration du modèle constituant le motif. Ces spécificités sont élaborées à l'aide de caractères spéciaux, qui ne sont pas interprétés au sens littéral du terme, mais d'une façon spécifique.
Oui et non. En gros oui ils ont toujours la même signification, mais chaque programme peut les implémenter différemment ;-\
Dernière chose, j'ai beau lire et relire, les regex j'ai du mal, c'est quoi exactement ?
Ça c'est un monde à elles toutes seules.
Pour reprendre la description qu'il en est fait dans la faq sur sed :
Une expression régulière est un motif (pattern en anglais) qui entre en correspondance, de la gauche vers la droite, avec une chaîne de caractères.
Les expressions régulières tirent leur puissance de leurs capacités d'inclure des alternatives et des répétitions dans l'élaboration du modèle constituant le motif. Ces spécificités sont élaborées à l'aide de caractères spéciaux, qui ne sont pas interprétés au sens littéral du terme, mais d'une façon spécifique.
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 418
15 déc. 2011 à 18:03
15 déc. 2011 à 18:03
Oui. Et pour reprendre la citation ci-dessus :
Ces spécificités sont élaborées à l'aide de caractères spéciaux, qui ne sont pas interprétés au sens littéral du terme, mais d'une façon spécifique.
Ces spécificités sont élaborées à l'aide de caractères spéciaux, qui ne sont pas interprétés au sens littéral du terme, mais d'une façon spécifique.
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 418
15 déc. 2011 à 18:21
15 déc. 2011 à 18:21
Non ;-\
Il ne faut pas échapper le caractère "|" (on ne l'échappe (avec sed) que pour indiquer dans un motif ou l'une ou l'autre entre 2 correspondances), et il faut mettre le flag "g" (globalité) pour prendre en considération toutes les occurrences trouvées, sans quoi seule la 1ère rencontrée sera modifiée.
Il ne faut pas échapper le caractère "|" (on ne l'échappe (avec sed) que pour indiquer dans un motif ou l'une ou l'autre entre 2 correspondances), et il faut mettre le flag "g" (globalité) pour prendre en considération toutes les occurrences trouvées, sans quoi seule la 1ère rencontrée sera modifiée.
sed 's/|/\\/g'