Je vois beaucoup d'exemples et de pages de manuel sur la façon de faire des choses comme rechercher et remplacer en utilisant sed, awk ou gawk.
Mais dans mon cas, j'ai une expression régulière que je souhaite exécuter sur un fichier texte pour extraire une valeur spécifique. Je ne veux pas faire de recherche et de remplacement. Ceci est appelé de bash. Prenons un exemple:
Exemple d'expression régulière:
.*abc([0-9]+)xyz.*
Exemple de fichier d'entrée:
a
b
c
abc12345xyz
a
b
c
Aussi simple que cela puisse paraître, je ne peux pas comprendre comment appeler correctement sed / awk / gawk. Ce que j'espérais faire, c'est de l'intérieur de mon script bash avoir:
myvalue=$( sed <...something...> input.txt )
Les choses que j'ai essayées incluent:
sed -e 's/.*([0-9]).*/\\1/g' example.txt # extracts the entire input file
sed -n 's/.*([0-9]).*/\\1/g' example.txt # extracts nothing