Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Supprimer espace en bash

4 réponses
Avatar
andre_debian
Bonjour,

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

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

Merci.

Andr=E9

4 réponses

Avatar
Bernard Schoenacker
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
Avatar
Jerome Flesch
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, 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é

Avatar
andre_debian
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, a écrit :
> 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)
Avatar
Daniel Caillibaud
Le 12/02/16 à 16:29, Jerome Flesch a écrit :

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