Supprimer mot entre crochets en Shell
Résolu
sebcah
-
sebcah Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
sebcah Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Salut !
Je chercher à supprimer en Shell le mot [nord] de la ligne (stockée dans la variable $line):
paris [nord] [sud];091
pour n'avoir que :
paris [sud];091
Puis, je souhaiterais faire la même chose avec [sud] :
transformer :
paris [nord] [sud];091
en :
paris [nord];091
Merci ;)
Je chercher à supprimer en Shell le mot [nord] de la ligne (stockée dans la variable $line):
paris [nord] [sud];091
pour n'avoir que :
paris [sud];091
Puis, je souhaiterais faire la même chose avec [sud] :
transformer :
paris [nord] [sud];091
en :
paris [nord];091
Merci ;)
A voir également:
- Supprimer mot entre crochets en Shell
- Supprimer rond bleu whatsapp - Guide
- Classic shell - Télécharger - Personnalisation
- Trousseau mot de passe iphone - Guide
- Supprimer page word - Guide
- Supprimer mot de passe windows 10 - Guide
3 réponses
Salut,
[tmpfs]$ echo ${line} paris [nord] [sud];091 [tmpfs]$ echo ${line} | sed 's/ \^*\]//' paris [sud];091 [tmpfs]$ echo ${line} | sed 's/ \^*\]//2' paris [nord];091 [tmpfs]$;-))
Salut,
1.
1.
root@debian:~# line='paris [nord] [sud];091' root@debian:~# echo $line paris [nord] [sud];091 root@debian:~# line_sud=$(echo $line | sed 's/ \[nord\]//') root@debian:~# echo $line_sud paris [sud];091 root@debian:~# line_nord=$(echo $line | sed 's/ \[sud\]//') root@debian:~# echo $line_nord paris [nord];091 root@debian:~#2.
root@debian:~# line='paris [nord] [sud];091' root@debian:~# line_sud=${line/\[nord\]/} root@debian:~# line_nord=${line/\[sud\]/} root@debian:~# echo $line paris [nord] [sud];091 root@debian:~# echo $line_sud paris [sud];091 root@debian:~# echo $line_nord paris [nord] ;091 root@debian:~#
si je ne connais pas les mots entre crochets :D ?
jipicy a anticipé ;-)
http://www.commentcamarche.net/forum/affich 6258687 supprimer mot entre crochets en shell#1
jipicy a anticipé ;-)
http://www.commentcamarche.net/forum/affich 6258687 supprimer mot entre crochets en shell#1
Mais je n'arrive pas à faire la manip', ça ne fonctionne pas :S
Seb
La mise en forme n'est pas sortie comme il se devait, il manque des crochets ;-(
Donc essaie comme suit (Attention : il ne faut pas mettre d'espace entre les deux premiers crochets !!!) : ;-))
Ca marche bien avec cet exemple, mais comment faire la même chose avec :
[savigny] sur [orge];091
et
[paris] [magenta] république;066
??
Merci encore beaucoup <:)
Seb
NB: je cherche à avoir une même ligne de commande pour les trois cas de figure :P
Il suffit de changer l'espace de place : ;-))
Ca n'a pas marché cette fois-ci, en revanche j'ai trouvé en bricolant le code /P
pour le premier []
echo $line | sed 's/\^*\]//1'
et pour le second []
echo $line | sed 's/\^*\]//2'
Et voilà :)
Seb
PS :
Si ce n'est pas trop demandé peux tu m'expliquer le fonctionnement de cette ligne de code (je débute en shell)
je connais juste en sed le moyen de changer un mot avec : sed 's/toto/tata/g' et c'est tout.
Alors : ^ et *\] je vois pas tu tout à quoi ça sert.... et pourquoi fallait-il un espace :S ?
Merci :)
Seb