Navigation dans le texte
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour à tous,
Voici l'énoncé : J'ai besoin d'un script qui fasse ceci :
Nombre1=54154151454151
Nombre2=54154121358989
(...)
Nombre24=91754276213778
On prend le nombre en question pour chaque nombre = xx.., et on le place dans un autre fichier texte, entre les " ", 2 fois de suite en utilisant la phrase si dessous:
Eh oui, le nombre était "xxxxxxxx", vous avez bien entendu, "xxxxxxxx"
Donc en gros, le script va recopier dans un fichier texte vide :
Eh oui, le nombre était "xxxxxxxx", vous avez bien entendu, "xxxxxxxx"
24 fois avec le nombre correspondant.
Si je ne suis pas claire, dîtes le moi ;-)
Au passage, ce script m'aidera d'une part pour l'automatisation que je veux faire. Et d'autre part à utiliser sed, car je pense que c'est à lui que l'on va faire appel.
Merci à vous tous.
Voici l'énoncé : J'ai besoin d'un script qui fasse ceci :
Nombre1=54154151454151
Nombre2=54154121358989
(...)
Nombre24=91754276213778
On prend le nombre en question pour chaque nombre = xx.., et on le place dans un autre fichier texte, entre les " ", 2 fois de suite en utilisant la phrase si dessous:
Eh oui, le nombre était "xxxxxxxx", vous avez bien entendu, "xxxxxxxx"
Donc en gros, le script va recopier dans un fichier texte vide :
Eh oui, le nombre était "xxxxxxxx", vous avez bien entendu, "xxxxxxxx"
24 fois avec le nombre correspondant.
Si je ne suis pas claire, dîtes le moi ;-)
Au passage, ce script m'aidera d'une part pour l'automatisation que je veux faire. Et d'autre part à utiliser sed, car je pense que c'est à lui que l'on va faire appel.
Merci à vous tous.
A voir également:
- Navigation dans le texte
- Navigation privée - Guide
- Texte de chanson gratuit pdf - Télécharger - Vie quotidienne
- Supprimer les données de navigation - Guide
- Transcription audio en texte word gratuit - Guide
- Excel cellule couleur si condition texte - Guide
5 réponses
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" $
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 :-)
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..
$ 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" $
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 ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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..
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.
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'