Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 29/09/2015, à 20:46

michael-kael

Linux bash script extrait une partie d'une chaine

Bonjour

je suis en train de développer un script et j'ai besoin d'extraire une partie d'une chaine stockée dans la variable RES.

le début de la chaine à récupérer est toujours placé au même endroit mais sa taille est variable. Heureusement, elle se termine par un carriage return.

je n'arrive pas à trouver une solution simple pour récupérer cette partie de chaine.

Je vous ai mis le code complet. c'est ligne 22 que ca se passe!!! pour le moment j'ai fait un "${RES:57:11}" . le problème c'est que parfois la chaine a récupérer fait plus de 11 caractères.

#!/bin/bash

# this script reply to a sms containing ip the device wwan0 ip address


MESS="ifconfig wwan0:\n"
MESS+=`ifconfig wwan0`
MESS+="\n"

#get the file containing the IP key word
RES=$(grep -ri -B2 ip /tmp/sms/recv/)


#if IP is in the file

if test -n "$RES"; then

        echo "new IP request sms message from 00${RES:44:11}"

        sleep 1

        #envoi du SMS
        echo -e "TO=00${RES:44:11}\nMSG=\"${MESS}\"\n" > /tmp/sms/send/sms

        #delete the sms received
        grep -l -i "ip" /tmp/sms/recv/* 2>/dev/null | xargs rm -f
else

        exit 0

fi

        exit 0

Hors ligne

#2 Le 29/09/2015, à 22:49

pingouinux

Re : Linux bash script extrait une partie d'une chaine

Bonsoir,
Tu peux remplacer

${RES:44:11}

par

$(cut -c45- <<<"$RES")

qui prendra toute la chaîne à partir du 45ème caractère.

Hors ligne

#3 Le 30/09/2015, à 08:59

credenhill

Re : Linux bash script extrait une partie d'une chaine

hello
du 44ème car. jusqu'à la fin

${RES:44}

Hors ligne

#4 Le 30/09/2015, à 09:13

pingouinux

Re : Linux bash script extrait une partie d'une chaine

Ah oui, bien sûr, j'ai encore cherché midi à 14h… smile

Hors ligne

#5 Le 10/10/2015, à 10:04

Postmortem

Re : Linux bash script extrait une partie d'une chaine

Salut,

credenhill a écrit :

hello
du 44ème car. jusqu'à la fin

${RES:44}

Non, là tu prends à partir du 45eme ! tongue


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne