J'ai un script bash qui effectue des tâches en fonction d'un fichier "de
config". Je lis ce fichier avec la séquence suivante :
while read line
do
process_line ${line}
done < $1
Sachant que le fichier est le premier paramètre du script dont le format
est :
#commentaire
cmd option1 option2 dir
Pour la récupération des champs 'cmd', 'option1' et 'option2', je n'ai
aucun problème. La difficulté se situe sur le champ 'dir' sachant que
qu'il peut contenir des espaces.
Existe t-il une solution simple pour extraire des champs avec espace
sachant que je ne peux pas imposer un formalisme particulier ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Stephane Chazelas
On Thu, 17 Jan 2008 10:39:45 +0100, smu wrote:
Bonjour,
J'ai un script bash qui effectue des tâches en fonction d'un fichier "de config". Je lis ce fichier avec la séquence suivante :
while read line do process_line ${line} done < $1
Sachant que le fichier est le premier paramètre du script dont le format est :
#commentaire cmd option1 option2 dir
Pour la récupération des champs 'cmd', 'option1' et 'option2', je n'ai aucun problème. La difficulté se situe sur le champ 'dir' sachant que qu'il peut contenir des espaces.
Existe t-il une solution simple pour extraire des champs avec espace sachant que je ne peux pas imposer un formalisme particulier ? [...]
Pas sur de comprendre la question.
Peux-etre:
while read -r cmd option1 option2 dir; do process "$cmd" "$option1" "$option2" "$dir" done < "${1?}"
?
-- Stephane
On Thu, 17 Jan 2008 10:39:45 +0100, smu wrote:
Bonjour,
J'ai un script bash qui effectue des tâches en fonction d'un fichier "de
config". Je lis ce fichier avec la séquence suivante :
while read line
do
process_line ${line}
done < $1
Sachant que le fichier est le premier paramètre du script dont le format
est :
#commentaire
cmd option1 option2 dir
Pour la récupération des champs 'cmd', 'option1' et 'option2', je n'ai
aucun problème. La difficulté se situe sur le champ 'dir' sachant que
qu'il peut contenir des espaces.
Existe t-il une solution simple pour extraire des champs avec espace
sachant que je ne peux pas imposer un formalisme particulier ?
[...]
Pas sur de comprendre la question.
Peux-etre:
while read -r cmd option1 option2 dir; do
process "$cmd" "$option1" "$option2" "$dir"
done < "${1?}"
J'ai un script bash qui effectue des tâches en fonction d'un fichier "de config". Je lis ce fichier avec la séquence suivante :
while read line do process_line ${line} done < $1
Sachant que le fichier est le premier paramètre du script dont le format est :
#commentaire cmd option1 option2 dir
Pour la récupération des champs 'cmd', 'option1' et 'option2', je n'ai aucun problème. La difficulté se situe sur le champ 'dir' sachant que qu'il peut contenir des espaces.
Existe t-il une solution simple pour extraire des champs avec espace sachant que je ne peux pas imposer un formalisme particulier ? [...]
Pas sur de comprendre la question.
Peux-etre:
while read -r cmd option1 option2 dir; do process "$cmd" "$option1" "$option2" "$dir" done < "${1?}"
?
-- Stephane
smu
On Thu, 17 Jan 2008 10:39:45 +0100, smu wrote:
Bonjour,
J'ai un script bash qui effectue des tâches en fonction d'un fichier "de config". Je lis ce fichier avec la séquence suivante :
while read line do process_line ${line} done < $1
Sachant que le fichier est le premier paramètre du script dont le format est :
#commentaire cmd option1 option2 dir
Pour la récupération des champs 'cmd', 'option1' et 'option2', je n'ai aucun problème. La difficulté se situe sur le champ 'dir' sachant que qu'il peut contenir des espaces.
Existe t-il une solution simple pour extraire des champs avec espace sachant que je ne peux pas imposer un formalisme particulier ? [...]
Pas sur de comprendre la question.
Peux-etre:
while read -r cmd option1 option2 dir; do process "$cmd" "$option1" "$option2" "$dir" done < "${1?}"
?
Merci de vous intéresser à ma question.
Que ce passe t-il si 'dir' est quelque chose du genre :
/home/user/acquisition data/
Je vais récupérer "/home/user/acquisition" dans 'dir'.
Comment contourner ce problème ?
smu
On Thu, 17 Jan 2008 10:39:45 +0100, smu wrote:
Bonjour,
J'ai un script bash qui effectue des tâches en fonction d'un fichier "de
config". Je lis ce fichier avec la séquence suivante :
while read line
do
process_line ${line}
done < $1
Sachant que le fichier est le premier paramètre du script dont le format
est :
#commentaire
cmd option1 option2 dir
Pour la récupération des champs 'cmd', 'option1' et 'option2', je n'ai
aucun problème. La difficulté se situe sur le champ 'dir' sachant que
qu'il peut contenir des espaces.
Existe t-il une solution simple pour extraire des champs avec espace
sachant que je ne peux pas imposer un formalisme particulier ?
[...]
Pas sur de comprendre la question.
Peux-etre:
while read -r cmd option1 option2 dir; do
process "$cmd" "$option1" "$option2" "$dir"
done < "${1?}"
?
Merci de vous intéresser à ma question.
Que ce passe t-il si 'dir' est quelque chose du genre :
/home/user/acquisition data/
Je vais récupérer "/home/user/acquisition" dans 'dir'.
J'ai un script bash qui effectue des tâches en fonction d'un fichier "de config". Je lis ce fichier avec la séquence suivante :
while read line do process_line ${line} done < $1
Sachant que le fichier est le premier paramètre du script dont le format est :
#commentaire cmd option1 option2 dir
Pour la récupération des champs 'cmd', 'option1' et 'option2', je n'ai aucun problème. La difficulté se situe sur le champ 'dir' sachant que qu'il peut contenir des espaces.
Existe t-il une solution simple pour extraire des champs avec espace sachant que je ne peux pas imposer un formalisme particulier ? [...]
Pas sur de comprendre la question.
Peux-etre:
while read -r cmd option1 option2 dir; do process "$cmd" "$option1" "$option2" "$dir" done < "${1?}"
?
Merci de vous intéresser à ma question.
Que ce passe t-il si 'dir' est quelque chose du genre :
/home/user/acquisition data/
Je vais récupérer "/home/user/acquisition" dans 'dir'.
Comment contourner ce problème ?
smu
Cyrille Lefevre
Merci de vous intéresser à ma question.
Que ce passe t-il si 'dir' est quelque chose du genre :
/home/user/acquisition data/
Je vais récupérer "/home/user/acquisition" dans 'dir'.
justement non, dans un read, la dernière variable ramasse tout ce qui reste. un usage commun de cet avantage est d'utiliser une variable bidon. dans votre cas, il ne le faut pas.
ex. :
read a b c << EOF 1 2 3 4 5 EOF echo $c => 3 4 5
read a b c bidon << EOF 1 2 3 4 5 EOF echo $c => 3 echo $bidon => 4 5
Comment contourner ce problème ?
Regards, Cordialement,
Cyrille Lefevre. -- mailto:Cyrille.Lefevre-news% supprimer "%nospam% et ".invalid" pour me repondre. remove "%nospam" and ".invalid" to answer me.
Merci de vous intéresser à ma question.
Que ce passe t-il si 'dir' est quelque chose du genre :
/home/user/acquisition data/
Je vais récupérer "/home/user/acquisition" dans 'dir'.
justement non, dans un read, la dernière variable ramasse tout ce qui reste.
un usage commun de cet avantage est d'utiliser une variable bidon.
dans votre cas, il ne le faut pas.
ex. :
read a b c << EOF
1 2 3 4 5
EOF
echo $c
=> 3 4 5
read a b c bidon << EOF
1 2 3 4 5
EOF
echo $c
=> 3
echo $bidon
=> 4 5
Comment contourner ce problème ?
Regards, Cordialement,
Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%nospam@laposte.net.invalid
supprimer "%nospam% et ".invalid" pour me repondre.
remove "%nospam" and ".invalid" to answer me.
Que ce passe t-il si 'dir' est quelque chose du genre :
/home/user/acquisition data/
Je vais récupérer "/home/user/acquisition" dans 'dir'.
justement non, dans un read, la dernière variable ramasse tout ce qui reste. un usage commun de cet avantage est d'utiliser une variable bidon. dans votre cas, il ne le faut pas.
ex. :
read a b c << EOF 1 2 3 4 5 EOF echo $c => 3 4 5
read a b c bidon << EOF 1 2 3 4 5 EOF echo $c => 3 echo $bidon => 4 5
Comment contourner ce problème ?
Regards, Cordialement,
Cyrille Lefevre. -- mailto:Cyrille.Lefevre-news% supprimer "%nospam% et ".invalid" pour me repondre. remove "%nospam" and ".invalid" to answer me.
smu
Merci de vous intéresser à ma question.
Que ce passe t-il si 'dir' est quelque chose du genre :
/home/user/acquisition data/
Je vais récupérer "/home/user/acquisition" dans 'dir'.
justement non, dans un read, la dernière variable ramasse tout ce qui reste. un usage commun de cet avantage est d'utiliser une variable bidon. dans votre cas, il ne le faut pas.
ex. :
read a b c << EOF 1 2 3 4 5 EOF echo $c => 3 4 5
read a b c bidon << EOF 1 2 3 4 5 EOF echo $c => 3 echo $bidon => 4 5
Comment contourner ce problème ?
Regards, Cordialement,
Cyrille Lefevre.
Merci
smu
Merci de vous intéresser à ma question.
Que ce passe t-il si 'dir' est quelque chose du genre :
/home/user/acquisition data/
Je vais récupérer "/home/user/acquisition" dans 'dir'.
justement non, dans un read, la dernière variable ramasse tout ce qui
reste.
un usage commun de cet avantage est d'utiliser une variable bidon.
dans votre cas, il ne le faut pas.
ex. :
read a b c << EOF
1 2 3 4 5
EOF
echo $c
=> 3 4 5
read a b c bidon << EOF
1 2 3 4 5
EOF
echo $c
=> 3
echo $bidon
=> 4 5
Que ce passe t-il si 'dir' est quelque chose du genre :
/home/user/acquisition data/
Je vais récupérer "/home/user/acquisition" dans 'dir'.
justement non, dans un read, la dernière variable ramasse tout ce qui reste. un usage commun de cet avantage est d'utiliser une variable bidon. dans votre cas, il ne le faut pas.
ex. :
read a b c << EOF 1 2 3 4 5 EOF echo $c => 3 4 5
read a b c bidon << EOF 1 2 3 4 5 EOF echo $c => 3 echo $bidon => 4 5