Lire 'C Shell Programming Considered Harmful'.
Comment obtenez-vous la bonne ligne dans le fichier de configuration? Je suis sur le point de supposer qu'il y a juste une ligne dans le fichier, mais tant que vous pouvez identifier la ligne, il y a des façons de le faire.
set var1=`sed 's/[0-9.]*:\([0-9]*\)/\1/g' config.file`
set var2=`sed 's/\([0-9.]*\):[0-9]*/\1/g' config.file`
La première capture les 'numéros de port' après les adresses décimales pointées. La seconde capture les adresses. Dans chaque cas, le résultat est affecté à une chaîne avec des espaces séparant les valeurs.
Certains dénigrement plus manuel (sur Mac OS X 10.5.8 - 'homme csh imprime la page 'tcsh') vous propose peut-être après:
set arr1=(`sed 's/[0-9.]*:\([0-9]*\)/\1/g' config.file`)
set arr2=(`sed 's/\([0-9.]*\):[0-9]*/\1/g' config.file`)
Avec cette notation (les parenthèses autour l'arrière-cité commande sed), vous créez des tableaux, et peut utiliser:
echo $arr1[1]
echo $arr1[2]
echo $arr1[3]
echo $arr2[1]
echo $arr2[2]
echo $arr2[3]
(en supposant que les données de l'échantillon). La partie de la page de manuel où ceci est noté marque la syntaxe avec '(+)' qui pourrait bien signifier 'extension au shell C standard', donc cela dépend de votre environnement.
La première ligne est dans un fichier de configuration.
Les deux deuxièmes lignes sont variables shell:
a [0] = 2222, a [1] = 3333, a [2] = 4444
b [0] = 127.0.0.1, b [1] = 127,0 .0.2, b [2] = 127.0.0.3
est-ce cela? est le plus? que voulez-vous faire avec ces pièces? – Don
@Ebbcom: vous gagnez quelques points lorsque vous acceptez une réponse, ainsi que de rendre heureux ceux qui vous donnent des réponses acceptables. –