Aller au contenu

Extraire des chaines de caractère entre crochet "[ ]"


Bones-75

Messages recommandés

Membre, 𝕍̟̝𝕠̫͓̰𝕦̩͕̭͈𝕤̩̥͉̠̗ ͓̠̮̦̣͈𝕒͓̣̟̰̝̥̳𝕧̱͔̥̜̹̜̗̞𝕖̺͎̬͙͚̱̰͖̯𝕫̙̻̪͈̗̠̜̜͎ ̬͍͎̯̠̪̟̠̹͕𝟝̱̖͎̰̭̳̱̖͖͍ ̟̗̰͖̟̜͚͍̯̱𝕤̥͕̟̻̞̯͙̠͔̠𝕖̤͎̻͍̹͔͈̮̩𝕔̥̣̜̬̝̼̦̘̯𝕠͇̣̳̥͚̹͖̰𝕟͇̤̳̟̞̬ͅ𝕕̥̙̠͇̦̣𝕖͕͕̮̭̥𝕤͎̳͍̻.̺̟̠.͕̬.͔, 55ans Posté(e)
Ed. Membre 1 253 messages
55ans‚ 𝕍̟̝𝕠̫͓̰𝕦̩͕̭͈𝕤̩̥͉̠̗ ͓̠̮̦̣͈𝕒͓̣̟̰̝̥̳𝕧̱͔̥̜̹̜̗̞𝕖̺͎̬͙͚̱̰͖̯𝕫̙̻̪͈̗̠̜̜͎ ̬͍͎̯̠̪̟̠̹͕𝟝̱̖͎̰̭̳̱̖͖͍ ̟̗̰͖̟̜͚͍̯̱𝕤̥͕̟̻̞̯͙̠͔̠𝕖̤͎̻͍̹͔͈̮̩𝕔̥̣̜̬̝̼̦̘̯𝕠͇̣̳̥͚̹͖̰𝕟͇̤̳̟̞̬ͅ𝕕̥̙̠͇̦̣𝕖͕͕̮̭̥𝕤͎̳͍̻.̺̟̠.͕̬.͔,
Posté(e)
il y a 1 minute, Bones-75 a dit :

D'accord merci encore pour ton aide @Ed.

Avec plaisir 🐧.

Lien à poster
Partager sur d’autres sites

Annonces
Maintenant
Membre, Mr.Préfait, 43ans Posté(e)
Mak Marceau Membre 6 065 messages
43ans‚ Mr.Préfait,
Posté(e)
il y a 48 minutes, Nutkin a dit :

@Mak Marceau maîtrise Linux. Il pourra peut-être aider.

Un jour je vais savoir ça.

Lien à poster
Partager sur d’autres sites

Membre, Explorateur de Nuages, 47ans Posté(e)
Pheldwyn Membre 25 236 messages
47ans‚ Explorateur de Nuages,
Posté(e)

A noter que suivant le type de shell, tu peux avoir l'option -r pour sed qui permet de prendre en compte les expressions rationnelles étendues.

Bon, en gros, ça t'évite de devoir échapper tes parenthèses, accolades, ... dans ton expression régulière et d'avoir quelque chose de plus lisible :

echo "abcd=aaaa[xxxx.xxxx.xxxx.xxxx]" | sed -re "s/.*\[(.*)\]/\1/"
echo "abcd=aaaa[xxxx.xxxx.xxxx.xxxx]" | sed -re "s/[^[]*\[([^]]*)\]/\1/"


 

Lien à poster
Partager sur d’autres sites

Membre, 24ans Posté(e)
Bones-75 Membre 89 messages
Forumeur activiste‚ 24ans‚
Posté(e)
il y a 6 minutes, Pheldwyn a dit :

A noter que suivant le type de shell, tu peux avoir l'option -r pour sed qui permet de prendre en compte les expressions rationnelles étendues.

Bon, en gros, ça t'évite de devoir échapper tes parenthèses, accolades, ... dans ton expression régulière et d'avoir quelque chose de plus lisible :



echo "abcd=aaaa[xxxx.xxxx.xxxx.xxxx]" | sed -re "s/.*\[(.*)\]/\1/"
echo "abcd=aaaa[xxxx.xxxx.xxxx.xxxx]" | sed -re "s/[^[]*\[([^]]*)\]/\1/"


 

Merci @Pheldwyn je prend note au cas où. (^ ^)

Lien à poster
Partager sur d’autres sites

Membre, 𝕍̟̝𝕠̫͓̰𝕦̩͕̭͈𝕤̩̥͉̠̗ ͓̠̮̦̣͈𝕒͓̣̟̰̝̥̳𝕧̱͔̥̜̹̜̗̞𝕖̺͎̬͙͚̱̰͖̯𝕫̙̻̪͈̗̠̜̜͎ ̬͍͎̯̠̪̟̠̹͕𝟝̱̖͎̰̭̳̱̖͖͍ ̟̗̰͖̟̜͚͍̯̱𝕤̥͕̟̻̞̯͙̠͔̠𝕖̤͎̻͍̹͔͈̮̩𝕔̥̣̜̬̝̼̦̘̯𝕠͇̣̳̥͚̹͖̰𝕟͇̤̳̟̞̬ͅ𝕕̥̙̠͇̦̣𝕖͕͕̮̭̥𝕤͎̳͍̻.̺̟̠.͕̬.͔, 55ans Posté(e)
Ed. Membre 1 253 messages
55ans‚ 𝕍̟̝𝕠̫͓̰𝕦̩͕̭͈𝕤̩̥͉̠̗ ͓̠̮̦̣͈𝕒͓̣̟̰̝̥̳𝕧̱͔̥̜̹̜̗̞𝕖̺͎̬͙͚̱̰͖̯𝕫̙̻̪͈̗̠̜̜͎ ̬͍͎̯̠̪̟̠̹͕𝟝̱̖͎̰̭̳̱̖͖͍ ̟̗̰͖̟̜͚͍̯̱𝕤̥͕̟̻̞̯͙̠͔̠𝕖̤͎̻͍̹͔͈̮̩𝕔̥̣̜̬̝̼̦̘̯𝕠͇̣̳̥͚̹͖̰𝕟͇̤̳̟̞̬ͅ𝕕̥̙̠͇̦̣𝕖͕͕̮̭̥𝕤͎̳͍̻.̺̟̠.͕̬.͔,
Posté(e)
Il y a 6 heures, Bones-75 a dit :

 


echo "abcd=aaaa[xxxx.xxxx.xxxx.xxxx]" | sed -re "s/.*\[(.*)\]/\1/"
echo "abcd=aaaa[xxxx.xxxx.xxxx.xxxx]" | sed -re "s/[^[]*\[([^]]*)\]/\1/"

 

Bien vu mais je craints que cette syntaxe simplifiée ne soit pas facilement adaptable pour traiter les données en flux.

Exemple :

echo "abcd=aaaa[xxx.xxx.xxx.xxx] abcd=aaaa[yyy.yyy.yyy.yyy]" | sed -e "s/[^[]*\[\([^]]*\)]/\1 /g"


xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy

 

Lien à poster
Partager sur d’autres sites

Annonces
Maintenant

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×