Necesito obtener una cadena de versión particular de un archivo (llámala version.lst) y la uso para comparar otra en un script de shell. Por ejemplo, sake, el archivo contiene líneas que se ven así:¿La mejor manera de analizar esta cadena en particular usando awk/sed?
V1.000 -- build date and other info here -- APP1
V1.000 -- build date and other info here -- APP2
V1.500 -- build date and other info here -- APP3
.. y así sucesivamente. Digamos que estoy tratando de tomar la primera versión (en este caso, V1.000) de APP1. Obviamente, las versiones pueden cambiar y quiero que esto sea dinámico. Lo que tengo en este momento funciona:
var = `cat version.lst | grep " -- APP1" | grep -Eo V[0-9].[0-9]{3}`
de tuberías a grep obtendrá la línea que contiene APP1 y el segundo tubo a grep obtendrá la cadena de versión. Sin embargo, he escuchado que grep no es la manera de hacerlo, así que me gustaría aprender la mejor forma de usar awk o sed. ¿Algunas ideas? Soy nuevo en ambos y no he encontrado un tutorial lo suficientemente fácil como para aprender la sintaxis del mismo. ¿Apoyan egrep? ¡Gracias!
Gracias por las múltiples respuestas usando awk y sed (y evitando grep), miraremos las respectivas documentaciones para ver exactamente lo que están haciendo, especialmente para sed que me parece extraño. – Jack
@Jack: Consulte mi respuesta editada para obtener explicaciones. –
Muy apreciado señor! – Jack