Extraction d'une partie d'une chaîne vers une variable dans bash
noob ici, désolé si un repost. Je suis l'extraction d'une chaîne à partir d'un fichier, et à la fin d'une ligne, quelque chose comme:
abcdefg:12345:67890:abcde:12345:abcde
Disons que c'est dans une variable nommée chaîne de test
la longueur des valeurs entre les deux points n'est pas constante, mais je veux enregistrer le numéro de chaîne est fine, à une variable, entre le 2e et le 3e des deux points. donc dans ce cas je finirais avec ma nouvelle variable, nous allons l'appeler extractedNum, étant 67890 . Je suppose que je dois utiliser sed mais ne l'ai jamais utilisé et essayer d'obtenir ma tête autour de lui...
Quelqu'un peut-il aider? Cheers
Sur un côté-note, je suis l'aide de la recherche pour extraire la totalité de la ligne à partir d'une chaîne, par la recherche de la 1ère chaîne de caractères, dans ce cas, le abcdefg partie.
source d'informationauteur Steven Cragg
Vous devez vous connecter pour publier un commentaire.
Voici un autre pur bash. Fonctionne très bien lors de votre entrée est raisonnablement cohérent et vous n'avez pas besoin de beaucoup de flexibilité dans la section qui vous choisissez.
Vous pouvez également filtrer le fichier pendant la lecture, dans une boucle while par exemple:
La commande sed est la cueillette de la 2ème colonne et délimiter que la valeur de l'ensemble de la ligne avec un espace. Si vous n'avez pas besoin de la totalité de la ligne, il suffit de supprimer l'espace+& du remplacement et de la chute de la ligne de la variable à partir de la lecture. Vous pouvez choisir n'importe quelle colonne en modifiant le nombre dans le \{2\} bits. (Mettre la commande dans des guillemets doubles si vous voulez utiliser une variable y.)
Pur Bash à l'aide d'un tableau:
La sortie:
Vous pouvez utiliser
cut
pour ce genre de trucs. Ici, vous allez:Pour le plaisir, c'est la façon dont je voudrais (pas) faire avec
sed
mais je suis sûr qu'il ya des façons plus faciles. Je suppose que ce serait une question de ma propre aux futurs lecteurs 😉cela devrait fonctionner pour vous: la partie de la clé est
awk -F: '$0=$3'
exemple:
si votre texte est stocké dans le var
testString
vous pouvez: