Supprimer espace en bash

Le
andre_debian
Bonjour,

Dans un fichier exécutable bash, j'ai une variable :
$ipnew=" 192.168.0.2"
Comment supprimer l'espace au début (avant 192) ?

J'ai tenté ceci :
sed -i 's/^ *//g' $ipnew
mais il me répond :
"sed: impossible de lire 192.168.0.2: Aucun fichier ou dossier de ce type"
(il interprète 192.168.0.2 comme un fichier)

Merci.

André
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Bernard Schoenacker
Le #26389205
Le Fri, 12 Feb 2016 16:24:09 +0100,
a écrit :

Bonjour,

Dans un fichier exécutable bash, j'ai une variable :
$ipnew=" 192.168.0.2"
Comment supprimer l'espace au début (avant 192) ?

J'ai tenté ceci :
sed -i 's/^ *//g' $ipnew
mais il me répond :
"sed: impossible de lire 192.168.0.2: Aucun fichier ou dossier de ce
type" (il interprète 192.168.0.2 comme un fichier)

Merci.

André




bonjour,

serait il possible d'employer tr ?

http://www.linux-france.org/article/man-fr/man1/tr-1.html

slt
bernard
Jerome Flesch
Le #26389206
Bonjour,

Si vous êtes sûr qu'il n'y aura jamais d'autres espaces dans la
valeur, 'tr' peut s'en charger facilement :

ipnew=$(echo "${ipnew}" | tr -d " ")

Sinon, avec sed:

ipnew=$(echo "${ipnew}" | sed 's/^ *//g')


Le 12 février 2016 à 16:24,
Bonjour,

Dans un fichier exécutable bash, j'ai une variable :
$ipnew=" 192.168.0.2"
Comment supprimer l'espace au début (avant 192) ?

J'ai tenté ceci :
sed -i 's/^ *//g' $ipnew
mais il me répond :
"sed: impossible de lire 192.168.0.2: Aucun fichier ou dossier de ce type "
(il interprète 192.168.0.2 comme un fichier)

Merci.

André

andre_debian
Le #26389224
On Friday 12 February 2016 16:29:46 you wrote:
Si vous êtes sûr qu'il n'y aura jamais d'autres espaces dans la
valeur, 'tr' peut s'en charger facilement :
ipnew=$(echo "${ipnew}" | tr -d " ")
Sinon, avec sed:
ipnew=$(echo "${ipnew}" | sed 's/^ *//g')



Merci !
Je retiens la méthode et la syntaxe.

Le 12 février 2016 à 16:24, > Dans un fichier exécutable bash, j'ai une variable :
> $ipnew=" 192.168.0.2"
> Comment supprimer l'espace au début (avant 192) ?
> J'ai tenté ceci :
> sed -i 's/^ *//g' $ipnew
> mais il me répond :
> "sed: impossible de lire 192.168.0.2: Aucun fichier ou dossier de ce ty pe"
> (il interprète 192.168.0.2 comme un fichier)
Daniel Caillibaud
Le #26389614
Le 12/02/16 à 16:29, Jerome Flesch
JF> Bonjour,
JF>
JF> Si vous êtes sûr qu'il n'y aura jamais d'autres espaces dans la
JF> valeur, 'tr' peut s'en charger facilement :
JF>
JF> ipnew=$(echo "${ipnew}" | tr -d " ")
JF>
JF> Sinon, avec sed:
JF>
JF> ipnew=$(echo "${ipnew}" | sed 's/^ *//g')

ou encore avec bash seul, sans lancer de sous-shell
echo ${ipnew// /}
ou pour modifier la variable de manière permanente
ipnew=${ipnew// /}

Cf la partie ${var//Motif/Remplacement} de http://abs.traduc.org/abs-fr/ch1 0s02.html

--
Daniel

Les allemands sortent la première voiture qui se boit après mange r :
l'Audi cointreau.
Les nuls
Publicité
Poster une réponse
Anonyme